- ベストアンサー
多次元配列をソートする綺麗なやり方は?
- 多次元配列を効率よくソートする方法を教えてください。
- $ball配列の'size'の値でソートしたいですが、簡潔かつ効果的な方法がわかりません。
- 効率的な多次元配列のソート方法を教えてください。
- みんなの回答 (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
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
ソートするとして今のデータ構造でどこに序数を入れるつもりですか? 構造をかえていいなら可能だと思いますが・・・。 ちなみにsizeはユニークな値なのでしょうか?同一の値が でたときはどう処理するつもりでしょうか?
補足
返答ありがとうございます。 $result = array ( 'base'=> array ('size'=> 1, 'jp'=>'野球'), 'volley'=> array ('size'=> 2, 'jp'=>'バレー'), 'soccer'=> array ('size'=> 3, 'jp'=>'サッカー'), 'basket'=> array ('size'=> 4, 'jp'=>'バスケット') ); ↑の様にしたいです。 sizeが重複した場合の順序は、どちらが先でもかまいません。
お礼
array_multisort() こんな関数探してました! 大変参考になりました。 ありがとうございます!