[PHP-users 26392] Re: uksort()でキーを使用してソート出来ない

haru@apacheuser.info haru @ apacheuser.info
2005年 8月 8日 (月) 14:56:13 JST


お世話になります内田です。

返信が遅れ申し訳ありません。

今回私が実現したかったことは、SQL文のorder byをPHPで出来ない
か、ということでした。
改めて自分の文章を見直すと、たしかにご指摘のあった通り実現したいことが
伝わりにくいなと感じました。重ね重ね申し訳ないです。


さて、PHPでorder by する方法ですが
usort()で出来ました。

----ココカラ----
<?php

$array[0] = array( "0" => 2 ,"num" => "2" ,"1" => "渡辺" ,"name" => "渡辺");
$array[1] = array( "0" => 1 ,"num" => "1" ,"1" => "吉岡" ,"name" => "吉岡");
$array[2] = array( "0" => 3 ,"num" => "3" ,"1" => "マイク" ,"name" => "マイク");



function my_multi_usort($a,$b){
	if ( $a['num'] < $b['num'] ) return -1;
	if ( $a['num'] > $b['num'] ) return 1;
	return 0;
}

usort ($array,"my_multi_usort");

print_r ($array);


?>
----ココマデ----

uksort()はキー自体の値を比較する関数になるみたいですね、どうも勉強不足の
上日本語能力に不足があったようで申し訳ないです。

usort()は連想配列のキーは破棄するものだと思ったのですが、特に問題なく
ソートできているようで、その点はまだ疑問ですが一応実現することは出来たと
いうことで、アドバイスをして下さいました皆様方、ありがとうございました。


PHP-users メーリングリストの案内