この配列があるとします:
$inventory = array(
array("type"=>"fruit", "price"=>3.50),
array("type"=>"milk", "price"=>2.90),
array("type"=>"pork", "price"=>5.43),
);
$inventory
の要素を価格で並べ替えて次の結果を取得したいと思います。
$inventory = array(
array("type"=>"pork", "price"=>5.43),
array("type"=>"fruit", "price"=>3.50),
array("type"=>"milk", "price"=>2.90),
);
これどうやってするの?
ベストアンサー1
おっしゃる通り、あなたが探している機能はarray_multisort()
。
以下はマニュアルから直接抜粋し、あなたのケースに合わせて調整した例です。
$price = array();
foreach ($inventory as $key => $row)
{
$price[$key] = $row['price'];
}
array_multisort($price, SORT_DESC, $inventory);
array_column()
PHP 5.5.0 以降では、代わりに foreachを使用できます。
$price = array_column($inventory, 'price');
array_multisort($price, SORT_DESC, $inventory);