列の値による連想配列の並べ替え
データの並べ替えは、プログラミングの基本的なタスクです。連想配列に関しては、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 サイトの他の関連記事を参照してください。