http://chalow.net/2007-11-07-3.html
PHPでジャグ配列をソートする方法を検索すると、array_multisort関数を使う方法が出てくるが、array_multisortは準備が必要だし、無駄に複数の配列をソートしている。あと、こんな機能はPHP以外では見たことがないので混乱する。
usort関数を使えば、javascriptやc#のようにユーザー定義の比較関数を使用してソートができる。
<?php
$sales = array(
2 => array(
'title' => 'ほげほげ1',
'amount' => 3,
),
1 => array(
'title' => 'ほげほげ2',
'amount' => 2,
),
0 => array(
'title' => 'ほげほげ3',
'amount' => 5,
),
);
var_dump($sales);
// 【array_multisortは、ソート用配列を作るというステップが必要】
// $amounts = array();
// foreach($sales as $key=>$item){
// $amounts[$key] = $item['amount'];
// }
// array_multisort($amounts, SORT_ASC, $sales); // $amountsをソートして、$salesをそれと同じ順に並べ替える
// 【usortなら、この1行だけでソートできる】
usort($sales, function ($item1, $item1) { return $item1['amount'] - $item2['amount']; });
var_dump($sales);
?>