我如何排序这个对象数组的一个字段,如名称或计数?
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");
你也可以使用任何可调用对象作为第二个参数。下面是一些例子:
使用匿名函数(来自PHP 5.3)
作用(your_data美元,函数(a, b)美元{返回比较字符串(a - >名称、b美元- >名称);});
从类内部
Usort ($your_data, array($this, "cmp"));// "cmp"应该是类中的一个方法
使用箭头函数(来自PHP 7.4)
作用your_data美元,fn (a, b)美元= > strcmp (a - >名称、b美元- >名称));
同样,如果你比较数值,fn($a, $b) => $a->count - $b->count作为“比较”函数应该可以做到这一点,或者,如果你想用另一种方式做同样的事情,从PHP 7开始,你可以使用太空船操作符,像这样:fn($a, $b) => $a->count <=> $b->count。
使用usort,这里有一个从手册改编的例子:
function cmp($a, $b) {
return strcmp($a->name, $b->name);
}
usort($your_data, "cmp");
你也可以使用任何可调用对象作为第二个参数。下面是一些例子:
使用匿名函数(来自PHP 5.3)
作用(your_data美元,函数(a, b)美元{返回比较字符串(a - >名称、b美元- >名称);});
从类内部
Usort ($your_data, array($this, "cmp"));// "cmp"应该是类中的一个方法
使用箭头函数(来自PHP 7.4)
作用your_data美元,fn (a, b)美元= > strcmp (a - >名称、b美元- >名称));
同样,如果你比较数值,fn($a, $b) => $a->count - $b->count作为“比较”函数应该可以做到这一点,或者,如果你想用另一种方式做同样的事情,从PHP 7开始,你可以使用太空船操作符,像这样:fn($a, $b) => $a->count <=> $b->count。