项目中需要按照用户的得分进行排序。如下面图片所示,需要将数组按score值排序得到图片所示结果。

首先,创建一个比较函数。这里要用到usort

usort两两提取数组中的数值,并按顺序输入自定义函数中,自定义函数根据内容返回1或者-1。下面假定两个数值分别为a和b。
usort根据返回值为1或者-1,得到传入的数值a“大于”或者“小于”数值b,然后对数值进行从小到大的排序。

即:

返回值为1,说明数值a“大于”数值b,然后排序:数值b->数值a。
返回值为-1,说明数值a“小于”数值b,然后排序:数值a->数值b。

代码1:

假设原数组为:$scores

function compare_1pxeye($a, $b)
{
    return ($a["score"] <= $b["score"]) ? -1 : 1;
}
usort($scores, "compare_1pxeye");
$result = $scores;

代码2:

通过array_reverse对代码1的结果进行翻转即可。

function compare_1pxeye($a, $b)
{
    return ($a["score"] <= $b["score"]) ? -1 : 1;
}
usort($scores, "compare_1pxeye");
$result = array_reverse($scores);