便利な関数を発見。
array_multisort
参考:
多次元配列をソートする(PHP)
書いてある通りにやったのに、うまくいかない…。
追記とまったく同じことになったので、回答をメモ。
- 255 :nobodyさん:2006/02/09(木) 18:52:25 ID:???
- $sort_key = フィールド名;
$sort_dir = ソート方向
$sort_type = 比較方法
$list = 処理対象フールド
こんな風な変数を作っておいてから
array_multisort($sort_key, $sort_dir, $sort_type, $list);
って具合に引数に変数で渡すと、
Warning: array_multisort(): Argument #2 is expected to be an array or a sort flag in~
または Argument #3~ってエラーになります。
$sort_dirのとこは
SORT_ASC(昇順にソート)
SORT_DESC(降順にソート)
$sort_typeのとこは
SORT_REGULAR(普通に比較)
SORT_NUMERIC(数値的に比較)
SORT_STRING(文字列として比較)
などのフラグの文字列そのものを直接、引数のとこに書き込まないとダメなんでしょうか?
フラグの文字列(SORT_DESCとかSORT_NUMERIC)を直接入れるとうまくいきます。
なにかウマい方法がありましたら教えてください。
参考:http://www2.atpages.jp/mirror/2ch/php/php/read.php?key=1139146534&st=201&to=300
原因は
$sort_dir =
"SORT_DESC
";
と、ダブルクォーテーションやシングルクォーテーションで変数をくくっていたため。
故に、対処法は。
$sort_dir = SORT_DESC;
これでOK。
PR