本文介绍如何使用php对二维数组进行排序并添加排名。我们将以一个包含票号(xuhao)和票数(piaoshu)信息的二维数组为例,演示如何根据票数降序排序(票数相同则按票号升序),并为每个子数组添加排名(paiming)字段。

初始数组:
$data = array(
array("xuhao" => "1", "piaoshu" => 3),
array("xuhao" => "2", "piaoshu" => 5),
array("xuhao" => "3", "piaoshu" => 5),
);排序和添加排名:
我们使用 array_multisort 函数进行排序,并通过循环添加排名信息。
立即学习“PHP免费学习笔记(深入)”;
// 提取票数和票号数据
$piaoshu = array_column($data, 'piaoshu');
$xuhao = array_column($data, 'xuhao');
// 降序排序票数,票数相同则升序排序票号
array_multisort($piaoshu, SORT_DESC, SORT_NUMERIC, $xuhao, SORT_ASC, SORT_STRING, $data);
// 添加排名信息
$rank = 1;
$prev_piaoshu = null;
foreach ($data as $key => $value) {
if ($value['piaoshu'] != $prev_piaoshu) {
$data[$key]['paiming'] = $rank;
$rank++;
$prev_piaoshu = $value['piaoshu'];
} else {
$data[$key]['paiming'] = $rank++;
}
}
// 输出结果
print_r($data);输出结果:
Array
(
[0] => Array
(
[xuhao] => 2
[piaoshu] => 5
[paiming] => 1
)
[1] => Array
(
[xuhao] => 3
[piaoshu] => 5
[paiming] => 2
)
[2] => Array
(
[xuhao] => 1
[piaoshu] => 3
[paiming] => 3
)
)这段代码首先提取票数和票号数组,然后使用 array_multisort 函数根据票数降序、票号升序对原始数组进行排序。 接着,它迭代排序后的数组,为每个子数组添加 paiming 字段,如果票数相同,则排名递增。 最终输出包含排名信息的排序后的二维数组。 这清晰地展示了如何结合 array_column 和 array_multisort 高效地处理此类排序和排名问题。
以上就是如何使用PHP对二维数组进行排序并添加排名?的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号