所以我有一个像这样的数组:
Array
(
[-1] => Array
(
[3] => 3
[1] => 1
[6] => 6
[7] => 7
[5] => 5
)
)
它还包含一些其他不应修改的键。
我希望第二个数组中的数字排在第一位(按照第二个数组的顺序),然后是第二个数组中不存在的数字(如果有)。
因此,第二个数组将是:
Array
(
[0] => 6
[1] => 5
[2] => 3
)
最终的数组应如下所示(请记住,该数组内还有一些键应保持原样):
Array
(
[-1] => Array
(
[6] => 6
[5] => 5
[3] => 3
[1] => 1
[7] => 7
)
)
有什么想法可以做到吗?
谢谢!
这不是也不应该被称为排序,但也许这个代码片段可以帮助你做你想做的事:
$a1 = Array ( [-1] => Array ( [3] => 3 [1] => 1 [6] => 6 [7] => 7 [5] => 5 ) );
$a2 = Array ( [0] => 6 [1] => 5 [2] => 3 );
$sorted = getSortedArray($a1[-1] , $array2);
function getSortedArray($array1 , $array2){
$temp = Array();
$count = 0;
$totalKeys = sizeof($array2);
for($i=0;$i<sizeof($array2);$i++){
$temp[i] = $array1[$array2[i]];
unset($array1[$array2[i]]);
}
while($count!=sizeof($array1))
$temp[$totalKeys++] = $array1[$count++];
return $temp;
}
我相信您正在寻找的函数称为 array_multisort()。
array_multisort()可用于排序 一次多个数组,或者一个 由一个或多个组成的多维数组 尺寸。