Вопрос сортировки массива - PullRequest
1 голос
/ 26 марта 2011

Итак, у меня есть такой массив:

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 ]

1 голос
/ 26 марта 2011

Это не так и не следует называть сортировкой, но может быть этот фрагмент кода может помочь вам сделать то, что вы хотите:

         $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;   



        }
0 голосов
/ 26 марта 2011

Я считаю, что функция, которую вы ищете, называется array_multisort () .

array_multisort () может использоваться для сортировки несколько массивов одновременно, или многомерный массив одним или несколькими размеры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...