[PHP-users 793] 多次元配列にぶら下がる配列の情報でソート
横山 芳成
php-users@php.gr.jp
Sat, 21 Jul 2001 11:14:05 +0900
こんにちわ、横山です。
「[PHP-jp 11621] 二次元配列のソーティン グをするには? 」
に似たようなことをやりたいのですが。。。。
$hoge = array( 'hoge1' => array(1,2,3,4,5,6,7,8,9),
'hoge2' => array(9,8,5,6,5,4,3,2,1),
'hoge3' => array(6,5,7,2,7,9,9,1,3),
'hoge4' => array(7,1,9,2,8,4,6,5,3));
上記のような配列を
$sort_keys = array( array('key' => 'hoge3', 'order' => '昇順'),
array('key' => 'hoge2', 'order' => '昇順'),
array('key' => 'hoge1', 'order' => '昇順'));
のソート指定に従って、優先度をhoge3→hoge2→hoge1として
$hoge = array( 'hoge1' => array(8,4,9,2,1,3,5,7,6),
'hoge2' => array(2,6,1,8,9,5,5,3,4),
'hoge3' => array(1,2,3,5,6,7,7,9,9),
'hoge4' => array(5,2,3,1,7,9,8,6,4));
のようにソートしたいと考えています。
array_multisortにて
array_multisort($hoge['hoge3'], SORT_REGULAR, SORT_ASC,
$hoge['hoge2'], SORT_REGULAR, SORT_ASC,
$hoge['hoge1'], SORT_REGULAR, SORT_ASC,
$hoge['hoge4']);
と逃げはあるのですが、hoge*が可変の場合を想定して何とかソート判定の関数
をバインドして実行できないか考えています。
どなたか良いアルゴリズムはありませんでしょうか?
以上
--------------------------------------------------------------------------
横山 芳成 (株)NEC情報システムズ
e-mail:yokoyama@sid.nis.nec.co.jp
yokoyama@pb.nec.jp.com
--------------------------------------------------------------------------