我一直在尝试使用usort()根据包含在其中的对象实例变量值对键控数组进行排序,但它似乎不是正确的工具。希望有人能对如下所示的对象进行排序。
提前感谢!
$ary = array("apple" => object DatePrice ("date" => "2015-12-01", "price" => 3),
"orange" => object DatePrice ("date" => "2015-12-02", "price" => 4),
"banana" => object DatePrice ("date" => "2015-12-01", "price" => 0.50),
"pear" => object DatePrice("date" => "2015-12-01", "price" => 1),
);
期望结果:
$ary = array("orange" =>object DatePrice("date" => "2015-12-02", "price" => 4),
"apple" => object DatePrice("date" => "2015-12-01", "price" => 3),
"pear" => object DatePrice("date" => "2015-12-01", "price" => 1),
"banana" => object DatePrice("date" => "2015-12-01", "price" => 0.50));
找到这篇文章:按对象字段排序对象数组
但我需要对对象的键控数组进行排序。。
类似的东西。。。
uasort($ary, function ($a, $b) {
return floatval($b['price']) - floatval($a['price']);
});
对于对象,它不会有太大变化,它只是一个函数,请在这里检查您需要的任何内容。。。
uasort($ary, function ($a, $b) {
return floatval($b->price) - floatval($a->price);
});
查看array_multisort()
。使用该方法,您可以根据关键字对(多维)数组进行排序,并指定其排序顺序。