• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:多次元配列をソートする綺麗なやり方は?)

多次元配列をソートする綺麗なやり方は?

このQ&Aのポイント
  • 多次元配列を効率よくソートする方法を教えてください。
  • $ball配列の'size'の値でソートしたいですが、簡潔かつ効果的な方法がわかりません。
  • 効率的な多次元配列のソート方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

では、以下のようにしてみてください。 <?PHP $ball=array( 'base'=>array('size'=>1,'jp'=>'野球'), 'soccer'=>array('size'=>3,'jp'=>'サッカー'), 'basket'=>array('size'=>4,'jp'=>'バスケット'), 'volley'=>array('size'=>2,'jp'=>'バレー') ); foreach($ball as $key=>$row){ $size[$key] = $row['size']; } array_multisort($ball,SORT_ASC,$size); print_r($ball); ?> http://www.php.net/manual/ja/function.array-multisort.php

takatokoko
質問者

お礼

array_multisort() こんな関数探してました! 大変参考になりました。 ありがとうございます!

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

ソートするとして今のデータ構造でどこに序数を入れるつもりですか? 構造をかえていいなら可能だと思いますが・・・。 ちなみにsizeはユニークな値なのでしょうか?同一の値が でたときはどう処理するつもりでしょうか?

takatokoko
質問者

補足

返答ありがとうございます。 $result = array (         'base'=>  array ('size'=> 1, 'jp'=>'野球'),         'volley'=> array ('size'=> 2, 'jp'=>'バレー'),         'soccer'=> array ('size'=> 3, 'jp'=>'サッカー'),         'basket'=> array ('size'=> 4, 'jp'=>'バスケット')        ); ↑の様にしたいです。 sizeが重複した場合の順序は、どちらが先でもかまいません。

関連するQ&A