You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP实现关联数组按键排序并指定特定键始终置顶

PHP实现指定键置顶的数组排序需求

原始数组

array(4) {
    [LAA] = array(2) {
        [games] = int() 81
        [total] = int() 2135199
    }
    [TOA] = array(2) {
        [games] = int() 4
        [total] = int() 54957
    }
    [KCA] = array(2) {
        [games] = int() 3
        [total] = int() 36510
    }
    [HOA] = array(2) {
        [games] = int() 10
        [total] = int() 363482
    }
}

需求说明

需要让指定的3字符球队缩写键(例如LAA)在排序后始终位于数组顶部。此前通过SQL语句实现过该需求:

$team = "LAA";
ORDER BY CASE WHEN team = '$team' THEN 1 ELSE 2 END, team

但现在需要在无数据库可用的场景下,用PHP代码实现排序。直接使用ksort按键排序后,数组顺序为HOA、KCA、LAA、TOA,期望的排序结果是LAA、HOA、KCA、TOA。

实现思路

先提取数组所有键并降序排序,遍历过程中把指定键的元素单独保存,剩余元素重新放回原数组,最后将保存的指定键元素与剩余数组合并,即可让指定键置顶。

验证可行的PHP函数

function my_ksortD(&$arg, $team) {  // 单独对键进行降序排序,逐个删除元素并按降序追加到末尾
                                    // 最终将指定的$team键放到数组顶部
    $keys = array_keys($arg);
    rsort($keys);
    foreach($keys as $key) {
        $val = $arg[$key];
        unset($arg[$key]);
        if($key == $team) {
            $saveVal[$key] = $val;
        }
        else {
            $arg[$key] = $val;
        }
    }
    $arg = array_merge($saveVal, $arg);
}

内容的提问来源于stack exchange,提问作者user2140857

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 12:05:21