« PHP:多次元配列の扱い方 | メイン | PHP:x桁の数字をランダムに作成する »
2005年09月08日
PHP:多次元配列のソート(usort)
多次元配列を条件付きでソートする場合にはusortを使用するのが便利です。usort関数は、ユーザー定義関数を引数として、多次元配列をソートします。
■usortの使用方法
$FRUIT = array();
$FRUIT[0]['name'] = 'りんご';
$FRUIT[0]['num'] = 15;
$FRUIT[1]['name'] = 'みかん';
$FRUIT[1]['num'] = 30;
$FRUIT[2]['name'] = 'バナナ';
$FRUIT[2]['num'] = 2;
function cmp_desc($a, $b){
if($a["num"] > $b["num"]){
return -1;
}else if($a["num"] < $b["num"]){
return 1;
}else{
return 0;
}
}
(※上記比較関数は、
if($a["num"] == $b["num"]){
return 0;
}else{
return ($a["num"] > $b["num"]) ? -1 : 1;
}とも書くことができます。)
usort($FRUIT, "cmp_desc");
while(list($key, $value) = each($FRUIT)){
$name = $value['name'];
$num = $value['num'];
print "$key.$name({$num}個) ";
}
※上記の結果、以下のように出力されます。
0.みかん(30個) 1.りんご(15個) 2.バナナ(2個)
投稿者 wing : 2005年09月08日 12:46