数组排序问题

时间:2011-03-25 22:08:58

标签: php arrays sorting

所以我有一个像这样的阵列:

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
        )
)

有什么想法可以做到吗?

谢谢!

2 个答案:

答案 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()可用于排序   几个阵列,或一个   多维数组由一个或多个   尺寸。