如何在 PHP 中按降序按[sequence_number]
对以下数组进行排序?
Array
(
[0] => stdClass Object
(
[debate_id] => 1
[stakeholder_id] => 1
[sequence_number] => 1
[title] => SLIDE 1 - STAKEHOLDER 1
[content] => This is the first slide for STAKEHOLDER 1
)
[1] => stdClass Object
(
[debate_id] => 1
[stakeholder_id] => 1
[sequence_number] => 4
[title] => SLIDE 2 - STAKEHOLDER 1
[content] => This is the second slide for STAKEHOLDER 1
)
[2] => stdClass Object
(
[debate_id] => 1
[stakeholder_id] => 1
[sequence_number] => 3
[title] => SLIDE 3 - STAKEHOLDER 1
[content] => This is the third slide for STAKEHOLDER 1
)
)
您可以使用 usort,以下是您的示例:
function compare_func($a, $b)
{
if ($a->sequence_number == $b->sequence_number) {
return 0;
}
return ($a->sequence_number < $b->sequence_number) ? -1 : 1;
// You can apply your own sorting logic here.
}
usort($arrayOfObjects, "compare_func");
usort() 函数使用用户提供的比较函数按数组的值对数组进行排序。
在我们的例子中compare_func是我们用户提供的功能。
如果要按字符串值对数组进行排序,可以在用户提供的函数中使用strcmp()函数。喜欢这个
return strcmp($a["title"], $b["title"]);
参考: http://php.net/manual/en/function.usort.php
试试这个:
usort($array, function($obj1, $obj2) {
return $obj2->sequence_number - $obj1->sequence_number;
});