$testAry = array( array('a' => 1, 'b' => 2, 'c' => 3), array('a' => 2, 'b' => 1, 'c' => 3), array('a' => 3, 'b' => 2, 'c' => 1), array('a' => 1, 'b' => 3, 'c' => 2), array('a' => 2, 'b' => 3, 'c' => 1), array('a' => 3, 'b' => 1, 'c' => 2) );
の配列がある場合に
aが2を先頭にし、以下aは昇順
bは昇順
に並び替え
$testAry = array( array('a' => 2, 'b' => 1, 'c' => 3), array('a' => 2, 'b' => 3, 'c' => 1), array('a' => 1, 'b' => 2, 'c' => 3), array('a' => 1, 'b' => 3, 'c' => 2), array('a' => 3, 'b' => 1, 'c' => 2), array('a' => 3, 'b' => 2, 'c' => 1) );
となるようにしたい場合
どのようにソートすれば実装することが可能でしょうか?
追記
昨日いただいた回答にて
$arr2 = array( array('no' => 1, 'name' => 'コナン'), array('no' => 4, 'name' => '光彦'), array('no' => 2, 'name' => '元太'), array('no' => 3, 'name' => '歩美'), array('no' => 5, 'name' => '哀'), ); usort($arr2, function($a, $b) { if ($a['no'] == $b['no']) { return 0; } if ($a['no'] == 3) { return -1; } if ($b['no'] == 3) { return 1; } return $a['no'] - $b['no']; }); print_r($arr2);
このようにusortを利用しユーザー定義のソートができるのは理解しているのですが
ソートしたい基準値が複数の場合のソートの処理の書き方がわからず質問させていただきました。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/20 01:47 編集