gpt4 book ai didi

php - 按一个属性对对象数组进行排序

转载 作者:IT老高 更新时间:2023-10-28 11:36:20 30 4
gpt4 key购买 nike

如何按其中一个字段(如 namecount)对该对象数组进行排序?

Array
(
[0] => stdClass Object
(
[ID] => 1
[name] => Mary Jane
[count] => 420
)

[1] => stdClass Object
(
[ID] => 2
[name] => Johnny
[count] => 234
)

[2] => stdClass Object
(
[ID] => 3
[name] => Kathy
[count] => 4354
)

....

最佳答案

使用 usort ,这里有一个改编自手册的例子:

function cmp($a, $b) {
return strcmp($a->name, $b->name);
}

usort($your_data, "cmp");

您也可以使用任何 callable作为第二个论点。以下是一些示例:

  • 使用 anonymous functions (从 PHP 5.3 开始)

      usort($your_data, function($a, $b) {return strcmp($a->name, $b->name);});
  • 从类内部

      usort($your_data, array($this, "cmp")); // "cmp" should be a method in the class
  • 使用 arrow functions (从 PHP 7.4 开始)

      usort($your_data, fn($a, $b) => strcmp($a->name, $b->name));

另外,如果您在比较数值,fn($a, $b) => $a->count - $b->count因为“比较”函数应该可以解决问题,或者,如果您想要另一种方法来做同样的事情,从 PHP 7 开始,您可以使用 Spaceship operator ,像这样:fn($a, $b) => $a->count <=> $b->count .

关于php - 按一个属性对对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4282413/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com