2012-07-19 123 views
0

可能重複:
How do I sort a multidimensional array in php排序多維數組

我有多維數組,爲的exaple此:

$ MAS =陣列( 「S」,陣列(」 C」, 「b」, 「A」),陣列(3,5,1), 「一」,陣列( 「S」,陣列( 「Z」, 「A」)));

我想排序(升序)所有數組元素,我寫遞歸函數,但它不工作,請告訴我,誰我錯了?

$mas = array("s",array("c","b","a"),array(3,5,1),"a",array("s",array("z","a"))); 



function sortsort($m) { 
    sort($m); 
    foreach ($m as &$v) { 
     if (is_array($v)) { 
      sortsort($v); 
     } 
    } 
    return $m; 
} 



    var_dump(sortsort($mas)); 
+3

如果更改'sortsort($ M)'定義爲'sortsort($ M)',這是否解決問題? – cdhowie 2012-07-19 10:16:12

+0

@cdhowie謝謝 – 2012-07-19 10:52:20

回答

1

試試這個

$mas = array("s",array("c","b","a"),array(3,5,1),"a",array("s",array("z","a"))); 
function sortsort(&$m) { 
    sort($m); 
    foreach ($m as $k=>$v) { 
     if (is_array($v)) { 
      sortsort($m[$k]); 
     } 
    } 
    return $m; 
} 

print_r(sortsort($mas)); 
1

使用

function aasort (&$array, $key) { 
    $sorter=array(); 
    $ret=array(); 
    reset($array); 
    foreach ($array as $ii => $va) { 
     $sorter[$ii]=$va[$key]; 
    } 
    asort($sorter); 
    foreach ($sorter as $ii => $va) { 
     $ret[$ii]=$array[$ii]; 
    } 
    $array=$ret; 
} 

aasort($ your_array, 「序」);