合并到对象后 usort 将不起作用
usort won't work after merging to objects
我有以下代码:
$content->Vehicles = (object)array_merge((array)$content->List, (array)$content_new->List);
$content->List
和 $content_new->List
是由两个 API 调用创建的,并且都按预期工作。
问题是我需要对对象进行排序。为此,我使用:
usort($content->Vehicles, function($a, $b) {
return ($a->Score < $b->Score) ? -1 : (($a->Score > $b->Score) ? 1 : 0);
});
当我传入 $content->List
时,它按预期工作,但是 $content->Vehicles
结果为 usort() expects parameter 1 to be array, object given
。
很想弄清楚这一点。
好吧,我现在傻了。回答如下:
$content->Vehicles = array_merge((array)$content->List, (array)$content_new->List);
我有以下代码:
$content->Vehicles = (object)array_merge((array)$content->List, (array)$content_new->List);
$content->List
和 $content_new->List
是由两个 API 调用创建的,并且都按预期工作。
问题是我需要对对象进行排序。为此,我使用:
usort($content->Vehicles, function($a, $b) {
return ($a->Score < $b->Score) ? -1 : (($a->Score > $b->Score) ? 1 : 0);
});
当我传入 $content->List
时,它按预期工作,但是 $content->Vehicles
结果为 usort() expects parameter 1 to be array, object given
。
很想弄清楚这一点。
好吧,我现在傻了。回答如下:
$content->Vehicles = array_merge((array)$content->List, (array)$content_new->List);