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

PHP面试题:按规则计算整数数组总分的实现方法问询

PHP数组总分计算问题解法

规则明确(结合示例验证)

  • 数组元素按以下规则累加总分:
    • 元素为8时,加5分
    • 元素为非8的偶数时,加1分
    • 元素为奇数时,加3分

你的代码存在的问题

  1. 错误修改并输出$val,而非对总分变量$total进行累加,完全偏离了“计算总分”的需求
  2. 对8的判断放在foreach循环外部,仅会检查数组最后一个元素,无法遍历所有元素判断
  3. 没有返回最终计算的总分,函数调用后无法得到结果
  4. 逻辑顺序错误:未优先判断8的情况,会导致8被当作普通偶数处理(与示例结果矛盾)

正确实现代码

function find_total($my_numbers) {
    $total = 0;
    foreach ($my_numbers as $val) {
        // 优先判断8,因为8是偶数但有单独规则
        if ($val === 8) {
            $total += 5;
        } elseif ($val % 2 === 0) {
            $total += 1;
        } else {
            $total += 3;
        }
    }
    return $total;
}

// 测试示例
echo find_total([1, 2, 3, 4, 5]); // 输出11
echo find_total([15, 25, 35]);    // 输出9
echo find_total([8, 8]);          // 输出10

代码说明

  • 初始化$total为0,作为总分的累加容器
  • 遍历数组每个元素,按优先级从高到低判断:先检查是否为8,再判断偶数/奇数
  • 每一步根据规则给$total加分,循环结束后返回$total,调用函数即可得到最终总分

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 07:10:33