我有以下数组,我需要按平均评分降序重新排序。这是一个片段。知道怎么做这个吗?
由于
Array
(
[0] => Array
(
[id] => 3
[name] =>
[rating] => 0
)
[1] => Array
(
[id] => 2
[name] =>
[rating] => 2
)
)
答案 0 :(得分:3)
您可以使用usort()
。
usort($arr, 'by_rating');
function by_rating($a, $b) {
if ($a['rating'] == $b['rating']) {
return 0;
} else {
return $a['rating'] < $b['rating'] ? -1 : 1;
}
}
或反过来:
function by_rating($a, $b) {
if ($a['rating'] == $b['rating']) {
return 0;
} else {
return $a['rating'] < $b['rating'] ? 1 : -1;
}
}
答案 1 :(得分:1)
使用PHP的usort()
功能。您可以提供自己的回调函数,该函数使用2个输入调用。您可以在函数中执行您喜欢的任何比较,并返回您认为最佳的值等等:
function myComparison($val1, $val2)
{
if ($val1["rating"] == $val2["rating"])
{
return 0;
}
return ($val1["rating"] < $val2["rating"]) ? -1 : 1;
}
usort($inputArray, "myComparison");
(来自PHP网站的示例,上面的结果集采用)。