2012-07-19 183 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, “序”);