我从数据库中获取数据,导致数组中包含无限对象,如下所示(给出的示例有 2 个对象,但可以有更多):
array(2)
{
[0] object(stdClass)#34 (6)
{
["id"] string(2) "32"
["voting_id"] string(2) "42"
["answer"] string(4) "No"
["color"] string(7) "#F7464A"
["votes"] string(1) "1"
["percentage"] float(0.166666666667)
}
[1] object(stdClass)#33 (6)
{
["id"] string(2) "31"
["voting_id"] string(2) "42"
["answer"] string(2) "Yes"
["color"] string(7) "#E2EAE9"
["votes"] string(1) "5"
["percentage"] float(0.833333333333)
}
}
我想通过投票或按百分比升序/降序对该数组进行排序。我试过了:
function sorterVotes($a, $b) {
if ( $a->votes < $b->votes ) return -1;
if ( $a->votes > $b->votes ) return 1;
return 0;
}
usort($answers, 'sorterVotes');
var_dump($answers);
但是唯一得到排序的是 [0] 和 [1] 发生了变化,但这对我没有帮助,因为我稍后会通过 foreach 遍历该数组。如何按票数/百分比和 asc/desc 对这个 n 个对象数组进行排序?
如果有人可以提供帮助,那就太好了。谢谢。