0

重複の可能性:
PHPで多次元配列をソートするにはどうすればよいですか

たとえば、次のような多次元配列があります。

$mas = array("s",array("c","b","a"),array(3,5,1),"a",array("s",array("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));
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 に答える