如何在PHP中按升序对2D数组值进行排序?

时间:2014-09-24 06:10:26

标签: php arrays loops for-loop multidimensional-array

这是我的基本PHP代码。只有for循环,我想用它来循环

<?php
//this is my 2-d array
$arr=array(array(5,9),
        array(7,1),
        array(3,2),
        array(6,4),
        array(2,8));

/*my basic for loop concept*/
    for($k=0;$k<count($arr);$k++)//for loop for key
    {
        for($v=0;$v<count($arr[$k]);$v++)//for loop for value
        {
            for($i=0;$i<5;$i++)//for loop to iterate
            {
                for($j=0;$j<3;$j++)//for loop to iterate
                {
                    print_r($arr[$k][$v].'<br>');
                    if($arr[$k][$v] > $arr[$i][$j])
                    {
                    $temp = $arr[$k][$v];
                    $arr[$k][$v]=$arr[$i][$j];
                    $arr[$i][$j] = $temp;
                    print_r($arr[$i][$j].'<br>');
                    }
                }
            }

        }
    }
?>

2 个答案:

答案 0 :(得分:0)

您可以使用PHP的array_multisort()函数

对于您的代码,解决方案将不使用循环。

<?php
    $arr=array(array(5,9),
        array(7,1),
        array(3,2),
        array(6,4),
        array(2,8));

    array_multisort($arr, SORT_ASC);     // For ascending
    array_multisort($arr, SORT_DESC);       // For Descending
    print_r($arr);
    ?>

如果你想对子数组进行排序,那么你可以使用循环并可以调用array_multisort()函数,如

array_multisort($arr[$index], SORT_ASC);  

我希望这会有所帮助。

答案 1 :(得分:0)

我希望这会对你有所帮助:

<?php
//this is my 2-d array
$arr=array(array(5,9),
        array(7,1),
        array(3,2),
        array(6,4),
        array(2,8));

for($i=0;$i<count($arr);$i++){
    array_multisort($arr[$i], SORT_ASC);
}
print_r($arr);
?>