如何在php中按键对多维数组进行排序

时间:2014-01-21 15:27:11

标签: php arrays multidimensional-array

我有一个像这样的多维数组

<?php 

$data2[3][1]=6;
$data2[9][3]=4;
$data2[9][2]=18;
$data2[4][2]=24;
$data2[4][0]=12;
$data2[4][1]=14;

?>

我想用它的键对这个数组进行排序,看起来像这个

$data2[3][1]=6;
$data2[4][0]=12;
$data2[4][1]=14;
$data2[4][2]=24;
$data2[9][2]=18;
$data2[9][3]=4;

使用了这个

foreach ($data2 as $k[]){
ksort($k);

}

print_r($k);

但没有工作。

2 个答案:

答案 0 :(得分:1)

循环对于下一级下来是必要的

$data2[3][1]=6;
$data2[9][3]=4;
$data2[9][2]=18;
$data2[4][2]=24;
$data2[4][0]=12;
$data2[4][1]=14;

foreach($data2 as $key=>$data)
{
   ksort($data2[$key]);
}

ksort($data2);

echo '<pre>';
print_r($data2);
echo '</pre>';

这将输出

Array
(
    [3] => Array
        (
            [1] => 6
        )

    [4] => Array
        (
            [0] => 12
            [1] => 14
            [2] => 24
        )

    [9] => Array
        (
            [2] => 18
            [3] => 4
        )

)

答案 1 :(得分:0)

我认为您首先需要对数组进行排序,然后对子数组进行排序。

ksort($data2); //Sort Array

foreach ($data2 as &$k){
    ksort($k); //Sort Each Sub-Array
}

根据Rocket Hazmat的评论更新