开发者

Array sorting question

So I have an array such as this one:

Array
(
    [-1] => Array
        (
            [3] => 3
            [1] => 1
            [6] => 6
            [开发者_如何学C7] => 7
            [5] => 5
        )
)

It also contains some other keys that should not be modified.

I'd like to the numbers which are in a second array to come first (in the order of that second array), and then will be the numbers that don't exist in the second array, if any.

So for that matter, the second array would be:

Array
(
    [0] => 6
    [1] => 5
    [2] => 3
)

And the final array should be as follows (please remember, there are some more keys inside of that array that should stay as they are):

Array
(
    [-1] => Array
        (
            [6] => 6
            [5] => 5
            [3] => 3
            [1] => 1
            [7] => 7
        )
)

Any ideas how that can be done?

Thanks!


It's not and shouldn't be termed as sorting but may be this code snippet may help you do what you want to:

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



        }


I believe the function you're looking for is called array_multisort().

array_multisort() can be used to sort several arrays at once, or a multi-dimensional array by one or more dimensions.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜