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

如何将变量值与关联数组值比较并将结果存入指定变量?

如何将变量值与关联数组的值对比并得到对应等级

没问题,我来帮你搞定这个需求!核心思路就是遍历你的关联数组,把$score和数组里的阈值/区间做比较,匹配成功后把对应的等级存入$grade就行。下面我结合两种常见的关联数组结构给你具体示例:

情况1:关联数组是「等级 => 最低分数阈值」

这种结构最常用,比如规定95分及以上拿A+,90-94拿A,以此类推:

// 定义关联数组,键是等级,值是对应等级的最低分数要求
$grades = [
    'A+' => 95,
    'A' => 90,
    'B+' => 85,
    'B' => 80,
    'C+' => 75,
    'C' => 70,
    'D' => 60,
    'F' => 0
];

$score = 97; // 你的目标分数变量
$grade = 'F'; // 设置默认等级,避免没有匹配项的情况

// 遍历数组,找到第一个符合条件的最高等级
foreach ($grades as $level => $threshold) {
    if ($score >= $threshold) {
        $grade = $level;
        break; // 找到最高等级后立刻停止遍历,提升效率
    }
}

echo $grade; // 这里会输出:A+

注意:这里的数组顺序必须是从高等级到低等级排列,这样遍历的时候第一个匹配的就是分数对应的最高等级,不会被低等级覆盖。

情况2:关联数组是「分数区间 => 等级」

如果你的数组是用分数区间作为键的,比如'95-100' => 'A+',那可以拆分区间后再比较:

$grades = [
    '95-100' => 'A+',
    '90-94' => 'A',
    '85-89' => 'B+',
    '80-84' => 'B',
    // 其他区间...
];

$score = 97;
$grade = 'F';

foreach ($grades as $range => $level) {
    // 把区间字符串拆成最小和最大分数
    list($minScore, $maxScore) = explode('-', $range);
    // 判断当前分数是否在区间内
    if ($score >= $minScore && $score <= $maxScore) {
        $grade = $level;
        break;
    }
}

echo $grade; // 同样会输出:A+

不管你的关联数组结构是哪种,核心逻辑都是:遍历数组,将$score与数组中的值(或拆分后的值)做比较,匹配成功后将对应等级赋值给$grade。如果你的数组结构特殊,只需要调整比较的逻辑就可以啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:02:07