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

3

鉴于此数组

$inventory = array(
    "sdfsdfsdsx65fsdf1"=>array("type"=>"fruit", "price"=>3.50),
    "sdfsdfsdsx65fsdf2"=>array("type"=>"milk", "price"=>2.90),
    "sdfsdfsdsx65fsdf3"=>array("type"=>"pork", "price"=>5.43)
);

我希望得到以下输出

$inventory = array(
    "sdfsdfsdsx65fsdf3"=>array("type"=>"pork", "price"=>5.43),
    "sdfsdfsdsx65fsdf1"=>array("type"=>"fruit", "price"=>3.50),
    "sdfsdfsdsx65fsdf2"=>array("type"=>"milk", "price"=>2.90)  
);
1个回答

1
$inventory = array(
  array("sdfsdfsdsx65fsdf1"=>array("type"=>"fruit", "price"=>3.50)),
  array("sdfsdfsdsx65fsdf2"=>array("type"=>"milk", "price"=>2.90)),
  array("sdfsdfsdsx65fsdf3"=>array("type"=>"pork", "price"=>5.43))
);

usort($inventory, function($a, $b) {
  foreach ($a as $a);
  foreach ($b as $b);
  if ($a['price'] == $b['price']) return 0;
  return ($a['price'] < $b['price']) ? 1 : -1;
});

print_r($inventory);

你能给我这个数组的输出吗?( [sdfsdfsdsx65fsdf1] => Array ( [type] => 水果 [price] => 3.5 )[sdfsdfsdsx65fsdf2] => Array ( [type] => 牛奶 [price] => 2.9 ) [sdfsdfsdsx65fsdf3] => Array ( [type] => 猪肉 [price] => 5.43 )) - Darshak Shah
是的,你的输出是正确的,但我已经编辑了问题,请再检查一遍并给我一个输出。 - Darshak Shah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接