[PHP-users 15469]ユーザー定義の比較関数により値で配列をソートする方法(usort)について
Kentaro Yoshida
php @ jcom.home.ne.jp
2003年 5月 25日 (日) 11:47:44 JST
おはようございます。吉田です。
http://jp.php.net/usort を見させて頂いたのですが、
ある配列が納められた変数名 $exampleをprint_rすると
Array
(
[0] => 5 http://www.yahoo.co.jp/?6732 yahoo
[1] => 5 http://google.co.jp google
[2] => 1 http://www.example.net example - Home
[3] => 64 http://www.hoge.to hoge
)
のようになる配列があります。
(数字とアドレスの間、アドレスの次とタイトルの間にはtabで区切ってあります。)
そして、http://php.s3.to/simple/source.php?nikki.phpを参考に
function ranksort($a, $b){
list($a1,) = explode("\t",$a);
list($b1,) = explode("\t",$b);
if ($a1 == $b1) return 0;
return ($a1 > $b1) ? -1 : 1;
}
と記述して、
usort($example, "ranksort");
としてみた所、挙動不審な動きを見せます。このような配列をソートするには
このユーザー定義関数におかしな点があるのでしょうか。
http://ns1.php.gr.jp/pipermail/php-users/2002-October/010579.html
を拝見しましたが、今一つ理解出来ません。
アドバイスお願い出来ませんでしょうか?
PHP-users メーリングリストの案内