如何在php中按给定键的值对关联数组排序并维护键?

如何在php中按给定键的值对关联数组排序并维护键?,php,arrays,Php,Arrays,给定这个数组 $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(
    "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)  
);
$inventory=array(
数组(“SDFSDFSDX65FSDF1”=>数组(“类型”=>“水果”、“价格”=>3.50”),
数组(“SDFSDFSDX65FSDF2”=>数组(“类型”=>“牛奶”,“价格”=>2.90)),
数组(“SDFSDFSDX65FSDF3”=>数组(“类型”=>“猪肉”,“价格”=>5.43))
);
usort($库存,功能($a,$b){
foreach($a作为$a);
foreach($b作为$b);
如果($a['price']=$b['price'])返回0;
回报($a['price']<$b['price'])?1:-1;
});
打印(库存);

你能给我数组([sdfsdfsdsx65fsdf1]=>Array([type]=>fruit[price]=>3.5)[sdfsdfsdsx65fsdf2]=>Array([type]=>milk[price]=>2.9)[sdfsdfsdsx65fsdf3]=>Array([type]=>pork[price]=>5.43)是的,您的输出是书面的,但我已经编辑了问题,请检查一次,然后给我一个输出
$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);