array_multisortを使えば多次元配列のソートが可能なのは知っていたけど、
ソートキーって複数設定できたりするってことを初めて知った。
例えば二次元配列要素内の
二つの要素をソートキーに使いたい場合、
分類、商品売上順とか
伝票日付、伝票番号、行番号とか。。。
【コード、年齢】でソートを行う例です。
$data[] = array('code' => '01','age' => 30);
$data[] = array('code' => '02','age' => 25);
$data[] = array('code' => '01','age' => 18);
foreach($data as $key => $val)
{
$sortcode[$key] = $val['code']; //第一キー指定
$sortage[$key] = $val['age']; //第二キー指定
}
array_multisort($sortcode,SORT_ASC,$sortage,SORT_ASC,$data);
ソート実行前
Array
(
[0] => Array
(
[code] => 01
[age] => 30
)
[1] => Array
(
[code] => 02
[age] => 25
)
[2] => Array
(
[code] => 01
[age] => 18
)
)
ソート実行後
Array
(
[0] => Array
(
[code] => 01
[age] => 18
)
[1] => Array
(
[code] => 01
[age] => 30
)
[2] => Array
(
[code] => 02
[age] => 25
)
)