[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 メーリングリストの案内