[PHP-users 22439]連想配列のソートに関しまして
Keisuke Hamanaka
hamanaka015 @ d-cruise.co.jp
2004年 6月 30日 (水) 10:17:14 JST
いつもお世話になっております。
濱中と申します。
連想配列のソートの方法について、ご意見を
頂きたくメールさせていただきました。
現在、以下のような配列があります。
----------------------------------------
$array[セッション番号1]["ホスト名"]=cccc
$array[セッション番号1]["転送速度"]=100
$array[セッション番号2]["ホスト名"]=bbbb
$array[セッション番号2]["転送速度"]=50
$array[セッション番号3]["ホスト名"]=aaaa
$array[セッション番号3]["転送速度"]=70
-----------------------------------------
以下のような構文を使って、ホスト名と転送速度を取り出すと
foreach($array as $v1){
foreach($v1 as $key => $v2){
if($key=="ホスト名"){
$host_name=$v2;
}elseif($key=="転送速度"){
$transfer_speed=$v2;
}
}
}
次のように、ホスト名と、転送速度が取得できます。
$host_name | $transfer_speed
-----------+----------------
cccc | 100
bbbb | 50
aaaa | 70
ここでやりたいことは、取り出すデータをホスト名の
順番にソートできないかということです。
つまり、
$host_name | $transfer_speed
-----------+-----------------
aaaa | 70
bbbb | 50
cccc | 100
といった順番で値を取得したいのです。
このためには、最初の配列$arrayを何らかの方法でソートしなければ
ならないかと思うのですが、連想配列のキーと値の関係を保持しながら
ソートするには、asort関数を使うことはわかりました。しかし、asort関数で
多次元配列をソートする方法がわかりません。どのようにして、ソートの対象となる
キー("ホスト名")を指定したらよいのでしょうか?
以上、わかりにくい説明で申し訳ありませんが、いい方法をご存知のかたが
いらっしゃいましたら、ご教授いただけると幸いです。
よろしくお願い致します。
-------------------------------------
株式会社トヨタデジタルクルーズ
サービスオペレーション部カスタマーサポートG
濱中圭介
TEL:052-202-0058
FAX:052-202-0402
-------------------------------------
PHP-users メーリングリストの案内