所以我有一个像这样的阵列:
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
)
)
有什么想法可以做到吗?
谢谢!
答案 0 :(得分:1)
它不是也不应该被称为排序,但可能是这段代码片段可以帮助您做您想做的事情:
$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;
}
答案 1 :(得分:0)
我相信您正在寻找的功能称为array_multisort()。
array_multisort()可用于排序 几个阵列,或一个 多维数组由一个或多个 尺寸。