自然对一个阵列进行排序,对多个单独的数组进行分类

问题描述 投票:0回答:3
我需要自然对第一个数组进行排序,并使其他数组的元素移至新位置,以使列保持相关。

输入数组:

$array1 = ['OA.3', 'OA.8', 'OA.6', 'OA.2']; $array2 = [4, 1, 5, 3]; $array3 = [3, 1, 5, 0];

the nessed结果:

$array1 = ['OA.2', 'OA.3', 'OA.6', 'OA.8']; $array2 = [3, 4, 5, 1]; $array3 = [0, 3, 5, 1];
是否可以将所有三个阵列的所有三个阵列在

natsort()

array_values()
排序中保持同步? Array2和Array3的最终结果显示了与Array1的分类和重键的最终结果相匹配的新键。

您可以在Natsort之后使用数组A的键,对数组B和C进行排序...示例:
$array1
完成分类后,您可以在数组$ a,$ bb和$ cc上应用array_values()。

注:pre只是为了打印数组之间的介于两者之间,没有其他功能。

php arrays sorting synchronization array-multisort
3个回答
2
投票
<?PHP function pre($a) { echo '<pre>'; print_r( $a ); echo '</pre>'; } $a = array( 0 => 'OA.3', 1 => 'OA.8', 2 => 'OA.6', 3 => 'OA.2' ); $b = array ( 0 => '4', 1 => '1', 2 => '5', 3 => '3' ); $c = array ( 0 => 3, 1 => 1, 2 => 5, 3 => 0, ); pre( $a ); natsort( $a ); pre( $a ); foreach( $a AS $key => $var ) { $bb[] = $b[ $key ]; $cc[] = $c[ $key ]; } echo '$bb:<br />'; pre( $bb ); echo '$cc:<br />'; pre( $cc ); ?>

$required_array3

这项任务正是设计要做的。 将第一个数组写为参数,然后添加参数以指示方向和比较样式,然后添加要同步突变的其他阵列。 demo


0
投票
$required_array2 = array(); foreach ($your_array2 as $key => $value) { $k = array_search($value, $your_array1); // Original array [unsorted] $required_array2[$k] = $value; }

输出:

array_multisort()
    

0
投票
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.