一尘不染

如何在PHP中按给定键的值对关联数组进行排序?

php

给定此数组:

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

);

我怎样才能做到这一点?


阅读 301

收藏
2020-05-26

共1个答案

一尘不染

没错,您要寻找的功能是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);
2020-05-26