我有一个包含对象的数组,我想按对象属性对数组进行排序。因此,我必须使用usort。但是我的数组没有排序。因此,我在代码中添加了一些var_dumps来调试它。下面是我的代码:
var_dump(count($fields));
usort($fields, function ($a, $b) {
var_dump("A");
return ($b->getPosition() - $a->getPosition());
});
var_dump("B");
die;
结果是:int(4) string(1) "B"
和..
我希望看到string(1) "A"
也能打印出来
所以看起来在usort函数内部没有发生任何事情。什么可以解释这种行为?我的PHP版本是7.1.21
(我已经编辑了上面的代码,但它仍然不能工作。没有记录A,并且数组未排序)
发布于 2018-08-30 05:03:27
usort
不能处理对象(至少在PHP7.2中)。您需要将其转换为数组(因为它似乎是一个集合对象,它可能有一个像toArray()
这样的方法)
https://stackoverflow.com/questions/52084797
复制相似问题