ホームページ > バックエンド開発 > PHPチュートリアル > PHP で連想配列の配列を列の値で並べ替えるにはどうすればよいですか?

PHP で連想配列の配列を列の値で並べ替えるにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-01 01:05:17
オリジナル
126 人が閲覧しました

How to Sort an Array of Associative Arrays by a Column Value in PHP?

列の値による連想配列の並べ替え

データの並べ替えは、プログラミングの基本的なタスクです。連想配列に関しては、PHP にはこのプロセスを容易にするためのいくつかの組み込み関数が用意されています。

次の連想配列の配列を考えてみましょう:

$inventory = array(
   array("type" => "fruit", "price" => 3.50),
   array("type" => "milk", "price" => 2.90),
   array("type" => "pork", "price" => 5.43)
);
ログイン後にコピー

タスクは、要素を並べ替えることです。 $inventory を「価格」列で降順に並べた結果in:

$inventory = array(
   array("type" => "pork", "price" => 5.43),
   array("type" => "fruit", "price" => 3.50),
   array("type" => "milk", "price" => 2.90)
);
ログイン後にコピー

array_multisort() を使用した解決策

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 )

PHP バージョン 5.5.0 以降の場合、array_column() 関数を使用して上記の作業を簡素化できます。コード:

$price = array_column($inventory, 'price');
array_multisort($price, SORT_DESC, $inventory);
ログイン後にコピー

使用法

ソートされた $inventory 配列を必要に応じて使用できるようになりました。たとえば、次のコードは並べ替えられた配列を出力します:

foreach ($inventory as $item) {
    echo $item['type'] . ": $" . $item['price'] . PHP_EOL;
}
ログイン後にコピー

Output:

pork: .43
fruit: .50
milk: .90
ログイン後にコピー

以上がPHP で連想配列の配列を列の値で並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート