2014-09-30 59 views
0

这是我的多排序代码。阵列内的多排序

但是,我怎么能为个人coloumns

是我迄今所做的做到这一点是

PHP代码:

<?php 
$a1=array("Cat","Alpha","two"); 
$a1=array("Cat","Beta","two"); 
$a1=array("Pluto","Beta","two"); 
$a1=array("Pluto","Alpha","two"); 
array_multisort($a1[0], SORT_ASC, SORT_STRING, $a1[1], SORT_NUMERIC, SORT_DESC); 
$json[] = $a1; 
$final=array("response"=>$a1); 
echo json_encode($final); 
?> 

它会显示为

Array ([0] => Cat [1] => Dog [2] => zb) Array ([0] => Missy [1] => Pluto [2] => Fido) 
我想显示

的$首先Coloumn a1作为ASC,那么$二Coloumn a1作为说明,

这样的结果应该是

Col A Col B, Col C 
Cat, Alpha two 
Cat, Beta two 
Pluto, Alpha two 
Plugo, Beta two 

我可怎么办呢?

+1

做出更有益的阵列结构,像'阵列(阵列(“类型” =>“狗” ,'name'=>'Pluto'),...)',然后参见http://stackoverflow.com/q/17364127/476。 – deceze 2014-09-30 11:10:18

+0

感谢您的链接,但在那array_multisort我找不到足够的锻炼:( – 2014-09-30 11:51:55

回答

0
<?php 
$a1=array("Dog","zb","Cat"); 
$a2=array("Pluto","Fido","Missy"); 

array_multisort($a1,SORT_ASC); 
array_multisort($a2,SORT_DESC); 
print_r($a1); 
print_r($a2); 
?> 
+0

我已更新我的问题。请你看看它 – 2014-09-30 11:17:25

1

我猜你想使用usort建立你自己的自定义排序算法:

<?php 
$array = array(
    array("Cat","Alpha","two"), 
    array("Cat","Beta","two"), 
    array("Pluto","Beta","two"), 
    array("Pluto","Alpha","two"), 
); 

function my_custom_sort($a, $b) 
{ 
    // first sort ASC by first column 
    if ($a[0] == $b[0]) { 
     // then sort ASC by second column 
     if ($a[1] == $b[1]) { 
      return 0; 
     } else { 
      return $a[1] < $b[1] ? -1 : 1; 
     } 
    } else { 
     return $a[0] < $b[0] ? -1 : 1; 
    } 
} 

usort($array, 'my_custom_sort'); 
var_dump($array); 
+0

谢谢,但阵列结果是,猫,测试版,两个,猫,Alpha,两个 – 2014-09-30 12:19:25

+0

噢,我误解了需求,我会修复并添加注释 – winkbrace 2014-09-30 12:24:42

+0

谢谢,我也在处理你的代码 – 2014-09-30 12:25:07