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