项目中需要按照用户的得分进行排序。如下面图片所示,需要将数组按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);
评论区
发表新的留言
您可以留言提出您的疑问或建议。
您的留言得到回复时,会通过您填写的邮箱提醒您。