How to sort an array of associative arrays by value of a given key in PHP?

前端 未结 19 2137
清酒与你
清酒与你 2020-11-21 23:34

Given this array:

$inventory = array(

   array(\"type\"=>\"fruit\", \"price\"=>3.50),
   array(\"type\"=>\"milk\", \"price\"=>2.90),
   array(\"         


        
19条回答
  •  醉梦人生
    2020-11-22 00:13

    You are right, the function you're looking for is array_multisort().

    Here's an example taken straight from the manual and adapted to your case:

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

    As of PHP 5.5.0 you can use array_column() instead of that foreach:

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

提交回复
热议问题