[PHP-users 7912] Re: 配列のソートについて
SHIMOOKA Hideyuki
php-users@php.gr.jp
Wed, 5 Jun 2002 11:00:01 +0900
下岡です。
---- Youさん曰く...
>配列のソートについて教えていただきたいので投稿させていただきます。
>現在、下記のような配列があるとします。
>
>$list = array(
> 'りんご\t200',
> 'みかん\t300',
> 'バナナ\t100',
> 'すいか\t140',
> );
(snip)
>for($i=0; $i<count($list); $i++){
> list(,$TMP) = split("\t",$list[$i]);
> $data["$TMP"] = $list[$i];
>}
>asort($data);
>
>とし、ソートしたい部分をキーとしその後、
>関数を使いソートしております。
>もっと、簡単にソースをまとめたいのですが、
>ほかに簡潔な方法はないか教えていただけないでしょうか。
こんなのでどうでしょうか?
毎回ソートのロジックを書かないで済みます。
----ここから
<?php
function compare($a, $b) {
$sa = split("\t", $a);
$sb = split("\t", $b);
if ($sa[1] == $sb[1]) return 0;
return ($sa[1] > $sb[1]) ? -1 : 1;
}
$list = array(
"りんご\t200",
"みかん\t300",
"バナナ\t100",
"すいか\t140",
"メロン\t1400",
"いちご\t500"
);
usort($list, "compare");
foreach($list as $key => $val) {
echo "$key => $val<br>";
}
?>
----ここまで
--
H.Shimooka/shimooka@axissoft.co.jp