0

我从数据库中获取数据,导致数组中包含无限对象,如下所示(给出的示例有 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 个对象数组进行排序?

如果有人可以提供帮助,那就太好了。谢谢。

4

0 回答 0