These pages are written by only Japanese.
|
Namazu for hns による簡易全文検索です。 詳細は 詳細指定/ヘルプをご参照下さい。 |
||||||||||||||||||||||||||||||||||||||||||||||
$array = array( array('name' => 'berry', 'price' => 200, 'date' => '20081211') array('name' => 'orange', 'price' => 100, 'date' => '20081210'), array('name' => 'apple', 'price' => 200, 'date' => '20081212'), ); $keys = array('price', 'date'); $orders = array(SORT_REGULAR, SORT_REGULAR + SORT_REVERSE); order_by_sort($array, $keys, $orders); var_export($array);実行結果
array ( 0 => array ( 'name' => 'orange', 'price' => 100, 'date' => '20081210', ), 1 => array ( 'name' => 'apple', 'price' => 200, 'date' => '20081212', ), 2 => array ( 'name' => 'berry', 'price' => 200, 'date' => '20081211', ), )define がダサいですが、実際に使う場合はクラスにまとめるので、 あまり考えないでおきます。
<?php // 列方向の配列を得る foreach ($data as $key => $row) { $volume[$key] = $row['volume']; $edition[$key] = $row['edition']; } // データを volume の降順、edition の昇順にソートする。 // $data を最後のパラメータとして渡し、同じキーでソートする。 array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data); ?>とすれば、マルチカラムでのソートが実現できるようで。