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

如何仅用PHP和HTML实现终端readline()的数组录入功能?

问题描述

原本在终端运行的PHP代码(通过readline()循环录入3组time和money生成二维数组)无法在浏览器中运行,尝试用PHP+HTML实现时,表单提交后仅能获取最后一个输入项的值,希望找到无需JavaScript的实现方法。

终端可运行的PHP代码:

<?php

$a = array();

for($i=0; $i<3; $i++){

    $b = readline('time: ');

    $c = readline('money: ');

    $d = array('time'=>$b, 'money'=>$c);

    array_push($a, $d);

}

print_r($a);

尝试的问题代码:

<form method="POST">
    
    <?php 

      for($i=0; $i<3; $i++){ 

    ?>

        <input name = 'time'>
    
        <input name = 'money'>
    
    <?php 
    
        } 
    
    ?>
       
    <input type="submit">
        
</form>

<?php

print_r($_POST['time']);

?>
解决方案

核心问题是表单中同名输入会被最后一个值覆盖,要让PHP接收为数组,只需调整输入框的name属性命名方式,以下两种方案都无需JavaScript:

方案一:分组式命名(推荐)

直接给每组输入设置带索引的嵌套命名,提交后可直接得到和终端代码一致的二维数组:

<form method="POST">
    <?php for($i=0; $i<3; $i++){ ?>
        <div>
            <input name="data[<?php echo $i; ?>][time]" placeholder="请输入时间">
            <input name="data[<?php echo $i; ?>][money]" placeholder="请输入金额">
        </div>
    <?php } ?>
    <input type="submit" value="提交">
</form>

<?php
// 仅在POST请求时处理输出
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    print_r($_POST['data']);
}
?>

提交后$_POST['data']的结构和你终端代码生成的$a完全一致,直接就能使用。

方案二:独立数组命名

如果不想用嵌套命名,也可以给每个输入的name加上[],让PHP把同名输入收集为数组,之后再手动组合成目标二维数组:

<form method="POST">
    <?php for($i=0; $i<3; $i++){ ?>
        <div>
            <input name="time[]" placeholder="请输入时间">
            <input name="money[]" placeholder="请输入金额">
        </div>
    <?php } ?>
    <input type="submit" value="提交">
</form>

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $result = [];
    // 遍历time数组,对应组合每组的time和money
    foreach($_POST['time'] as $index => $time) {
        $result[] = [
            'time' => $time,
            'money' => $_POST['money'][$index]
        ];
    }
    print_r($result);
}
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:01:05