arrayをarray[*][b][c]の値でソート
<?php function a_msort(&$a, $k, $o) { foreach ($k as $x) $y[] = var_export($x, 1); $r = "[" . implode("][", $y) . "]"; $c = $o == 'a' ? '<' : '>'; $f = create_function('$x, $y', "return \$x$r $c \$y$r ? -1 : (\$x$r == \$y$r ? 0 : 1);"); return uasort($a, $f); }
使い方
<?php $a = array( a => array(i => 3, s => a), b => array(i => 1, s => b), c => array(i => 2, s => c), ); a_msort($a, array(i), a); print_r($a); //// 出力 // Array // ( // [b] => Array // ( // [i] => 1 // [s] => b // ) // // [c] => Array // ( // [i] => 2 // [s] => c // ) // // [a] => Array // ( // [i] => 3 // [s] => a // ) // // )