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

如何从HTML表单文本域传数组并求和?简化PHP连续变量求和代码

问题解决方案

一、HTML表单文本域发送数组并求和

场景1:多个输入框提交数组

如果是对应24个变量的多个输入框,直接给它们设置数组格式的name属性,PHP接收后会自动转为数组:

<form method="post">
  <?php for ($i = 1; $i <= 24; $i++) : ?>
    <input type="text" name="t[]" placeholder="输入t<?= $i ?>的值">
  <?php endfor; ?>
  <button type="submit">提交计算</button>
</form>

PHP端处理求和:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // 过滤非数值输入,避免求和报错
    $validValues = array_filter($_POST['t'], fn($val) => is_numeric($val));
    // 直接用array_sum求和
    $total = array_sum($validValues);
    
    if ($total == 0) {
        // 执行你的业务逻辑
    }
}

场景2:单个文本域输入多值

如果用单个文本域让用户输入多个数值(比如用逗号分隔),可以在PHP端分割成数组再求和:

<form method="post">
  <textarea name="numbers" placeholder="输入多个数值,用逗号分隔"></textarea>
  <button type="submit">提交计算</button>
</form>

PHP端处理:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $input = trim($_POST['numbers']);
    // 按逗号分割并去除每个值的空格
    $numberList = array_map('trim', explode(',', $input));
    // 过滤无效数值
    $validValues = array_filter($numberList, fn($val) => is_numeric($val));
    $total = array_sum($validValues);
    
    if ($total == 0) {
        // 执行你的业务逻辑
    }
}

二、简化连续编号变量的求和

不用逐个罗列或循环拼接变量名,直接把变量打包成数组再求和,代码更简洁:

// 生成t1到t24的变量名数组
$varNames = array_map(fn($i) => "t$i", range(1, 24));
// 将对应变量的值打包为数组
$valueArray = compact(...$varNames);
// 一键求和
$sum = array_sum($valueArray);

if ($sum == 0) {
    // 执行你的逻辑
}

也可以写成一行简化版:

$sum = array_sum(compact(...array_map(fn($i) => "t$i", range(1, 24))));

如果变量可能未定义,建议添加默认值避免报错:

$sum = 0;
foreach (range(1, 24) as $i) {
    // 变量不存在时取0
    $sum += $GLOBALS["t$i"] ?? 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 05:22:41