2014-09-24 89 views
-3

这是我的基本PHP代码。仅用于循环,我想用此循环对它进行排序只有如何在PHP中以升序排列二维数组值?

<?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>'); 
        } 
       } 
      } 

     } 
    } 
?> 
+1

请,显示输入数据样本和所需的输出。 – sectus 2014-09-24 06:12:41

+0

你想在这里输出相同:9,8,7,6,5,4,3,2,1? – 2014-09-24 07:09:13

+0

我需要的输出: $ arr = array(array(1,2), array(2,3), array(4,5), array(6,7), array(8,9)) ; – THEKUNAL 2014-09-24 10:15:22

回答

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

我希望这将有助于。

+0

它不工作 – 2014-09-24 06:56:09

+0

@ĐứcĐoànQuang:将排序的在子阵列的第一个元素的基础上排列 – Naincy 2014-09-24 07:01:01

+0

感谢您的帮助,但是我只想使用for循环 – THEKUNAL 2014-09-24 10:18:38

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); 
?> 
+0

对不起,它不工作..... bro – THEKUNAL 2014-09-24 10:23:45

+0

可以在排序后向我显示您的示例输出吗? – 2014-09-24 10:42:57

+0

这个循环只需迭代4次并打印相同的数组... – THEKUNAL 2014-09-24 11:52:17