1. ホーム
  2. php

[解決済み] PHPで、連想配列の配列を指定されたキーの値でソートする方法は?

2022-03-18 14:40:38

質問

この配列が与えられた。

$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),

);

どうすればいいのでしょうか?

どのように解決するのですか?

おっしゃる通り、お探しの関数は array_multisort() .

以下は、マニュアルから直接引用した例を、あなたのケースに合わせてアレンジしたものです。

$price = array();
foreach ($inventory as $key => $row)
{
    $price[$key] = $row['price'];
}
array_multisort($price, SORT_DESC, $inventory);

PHP 5.5.0以降では、以下のように使用できます。 array_column() そのforeachの代わりに

$price = array_column($inventory, 'price');

array_multisort($price, SORT_DESC, $inventory);