0

可能重复:
如何在 php 中对多维数组进行排序

我有多维数组,例如:

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

我想对所有数组元素进行排序(升序),我编写了递归函数,但它不起作用,请告诉我,我错了?

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

2 回答 2

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,"order");

于 2012-07-19T10:23:54.083 回答
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));
于 2012-07-19T10:26:28.210 回答