【发布时间】:2015-06-08 11:42:52
【问题描述】:
我想按特定对象的属性对对象数组进行排序。这是我的对象数组:
如您所见,我有一个包含 2 个对象 的数组 $all_studies。我现在如何对对象的 graduationYear 属性进行排序?所以我想有一个包含对象的数组和对象的顺序,首先是 2010,然后是 2014,......(在这种情况下,顺序已经正确,但并不总是相同......)。
这是我尝试过但没有成功的方法:
$all_studies = usort($all_studies, "sort_objects_by_graduationyear");
function sort_objects_by_graduationyear($a, $b) {
if((int)$a->graduationYear == (int)$b->graduationYear){ return 0 ; }
return ($a->graduationYear < $b->graduationYear) ? -1 : 1;
}
但我只是得到true 回来。我从来没有使用过 usort 函数,所以我真的不知道如何使用它。有人可以帮我吗?
【问题讨论】:
-
见link
-
usort就地排序,它不返回结果。请参阅the manual 中的示例。 -
如果我想改变订单,从大到酒糟,我可以在你的函数中改变什么让它工作,谢谢?
标签: php arrays sorting object numbers