プロが教えるわが家の防犯対策術!

$ball = array (
        'base'=>  array ('size'=> 1, 'jp'=>'野球'),
        'soccer'=> array ('size'=> 3, 'jp'=>'サッカー'),
        'basket'=> array ('size'=> 4, 'jp'=>'バスケット'),
        'volley'=> array ('size'=> 2, 'jp'=>'バレー')
       );

↑sizeの値でソートしたいのですが、
なかなか綺麗な方法が思いつきません。
うまいやり方はないでしょうか?

ご回答宜しくお願い致します。

A 回答 (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-mult …
    • good
    • 0
この回答へのお礼

array_multisort()
こんな関数探してました!

大変参考になりました。
ありがとうございます!

お礼日時:2006/11/02 14:56

ソートするとして今のデータ構造でどこに序数を入れるつもりですか?


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

この回答への補足

返答ありがとうございます。

$result = array (
        'base'=>  array ('size'=> 1, 'jp'=>'野球'),
        'volley'=> array ('size'=> 2, 'jp'=>'バレー'),
        'soccer'=> array ('size'=> 3, 'jp'=>'サッカー'),
        'basket'=> array ('size'=> 4, 'jp'=>'バスケット')
       );

↑の様にしたいです。
sizeが重複した場合の順序は、どちらが先でもかまいません。

補足日時:2006/11/02 12:28
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!