当前位置:首页 > PHP

php实现并列排名

2026-02-15 13:04:45PHP

PHP实现并列排名的方法

并列排名是指当多个数据具有相同的值时,它们会被赋予相同的排名,而后续的排名会根据并列的数量进行跳过。以下是几种实现并列排名的PHP方法:

php实现并列排名

使用数组排序和循环

$scores = [100, 90, 90, 80, 75, 60, 60, 60, 30];
rsort($scores); // 降序排序

$rank = 1;
$ranks = [];
$previousScore = null;

foreach ($scores as $index => $score) {
    if ($score !== $previousScore) {
        $rank = $index + 1;
    }
    $ranks[$index] = $rank;
    $previousScore = $score;
}

print_r($ranks);

使用array_count_values函数

$scores = [100, 90, 90, 80, 75, 60, 60, 60, 30];
rsort($scores); // 降序排序

$counts = array_count_values($scores);
$ranks = [];
$currentRank = 1;

foreach ($counts as $score => $count) {
    $rankKeys = array_keys($scores, $score);
    foreach ($rankKeys as $key) {
        $ranks[$key] = $currentRank;
    }
    $currentRank += $count;
}

print_r($ranks);

使用数据库查询实现

如果数据存储在数据库中,可以使用SQL的窗口函数(MySQL 8.0+支持):

$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$stmt = $pdo->query("
    SELECT 
        score,
        DENSE_RANK() OVER (ORDER BY score DESC) AS rank
    FROM scores_table
");
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

处理关联数组的情况

当需要保持数据与原始数组的关联时:

$students = [
    ['name' => 'Alice', 'score' => 100],
    ['name' => 'Bob', 'score' => 90],
    ['name' => 'Charlie', 'score' => 90],
    ['name' => 'David', 'score' => 80]
];

usort($students, function($a, $b) {
    return $b['score'] - $a['score'];
});

$rank = 1;
$previousScore = null;

foreach ($students as &$student) {
    if ($student['score'] !== $previousScore) {
        $student['rank'] = $rank;
    } else {
        $student['rank'] = $rank - 1;
    }
    $previousScore = $student['score'];
    $rank++;
}

print_r($students);

这些方法可以根据具体需求进行调整,适用于各种需要处理并列排名的场景。

php实现并列排名

标签: php
分享给朋友:

相关文章

php实现分页

php实现分页

PHP实现分页的基本方法 使用原生PHP实现分页功能需要结合数据库查询和HTML展示。以下是核心实现步骤: 数据库查询与分页逻辑 // 连接数据库 $conn = new mysqli('lo…

php 实现自动收货

php 实现自动收货

PHP 实现自动收货功能 自动收货功能通常用于电商系统,在订单超过一定时间未手动确认收货时自动完成订单。以下是实现方法: 数据库设计 需要订单表包含以下关键字段: CREATE TABLE…

git php实现

git php实现

Git 与 PHP 的集成实现 使用 PHP 执行 Git 命令 通过 PHP 的 exec()、shell_exec() 或 passthru() 函数可以直接调用 Git 命令,适用于服务器端操作…

php实现跳转

php实现跳转

PHP 实现页面跳转的方法 在 PHP 中实现页面跳转有多种方式,以下是常见的几种方法及其适用场景: 使用 header() 函数 通过 header() 函数发送 HTTP 头部信息实现跳转。注…

php搜索功能实现

php搜索功能实现

实现基本的PHP搜索功能 使用MySQL数据库和PHP实现简单的关键词搜索功能。需要确保数据库中有可供搜索的表和数据。 // 连接数据库 $conn = new mysqli('localhost'…

php 实现下载

php 实现下载

PHP 实现文件下载的方法 使用 PHP 实现文件下载可以通过设置 HTTP 头信息,强制浏览器将文件作为附件下载而非直接打开。 基本下载实现 $file_path = 'path/to/your…