如何按照对象数组的某个字段(如name或count)对该数组进行排序
数组
(
[0]=>;stdClass对象
(
[ID]=>;1
[姓名]=>;玛丽·简
[计数]=>;420
)
[1] =>;stdClass对象
(
[ID]=>;2
[姓名]=>;约翰尼
[计数]=>;234
)
[2] =>;stdClass对象
(
[ID]=>;3
[姓名]=>;凯西
[计数]=>;4354
)
....
使用usort,以下是根据手册改编的示例:
函数cmp($a,$b){
返回strcmp($a->;name,$b->;name);
}
usort($U数据“cmp”);
您还可以使用任何callable作为第二个参数。以下是一些示例:
-
使用匿名函数(来自PHP5.3)
usort($a,$b){returnstrcmp($a->;name,$b->;name);}); -
从班级内部
usort('u data,array('this,";cmp";);//quot;cmp";应该是类中的一个方法 -
使用箭头函数(来自PHP7.4)
usort($a,$b)=>;strcmp($a->;name,$b->;name));
另外,如果您正在比较数值,fn($a,$b)=>;$a->;count-$b->;count,因为“compare”函数应该会起作用,或者,如果您想用另一种方法做同样的事情,从PHP7开始,您可以使用Spaceship操作符,如下所示:fn($a,$b)=>;$a->;计数<;=>;$b->;计数