【问题标题】:Storing HTML form values into an array in PHP and printing将 HTML 表单值存储到 PHP 中的数组中并打印
【发布时间】:2013-10-08 07:11:30
【问题描述】:

我试图在 html 文件中获取用户输入的 10 个数字,该文件将存储到 php 文件的数组中。虽然当我尝试打印数组时,我得到的只是“数组”这个词,但知道为什么吗?

HTML 文件:

<!DOCTYPE HTML>
<html>
<head>
<meta charset= "utf-8">
</head>
<body>
Please enter 10 numbers that will be stored in an array:
<form action="practice3.php" method="post">
<input type="text" name="number1[]" placeholder="First number"><br />
<input type="text" name="number2[]" placeholder="Second number"><br />
<input type="text" name="number3[]" placeholder="Third number"><br />
<input type="text" name="number4[]" placeholder="Fourth number"><br />
<input type="text" name="number5[]" placeholder="Fifth number"><br />
<input type="text" name="number6[]" placeholder="Sixth number"><br />
<input type="text" name="number7[]" placeholder="Seventh number"><br />
<input type="text" name="number8[]" placeholder="Eighth number"><br />
<input type="text" name="number9[]" placeholder="Ninth number"><br />
<input type="text" name="number10[]" placeholder="Tenth number"><br />
<input type="submit" name="submit" value="Submit">
</form>
</body>

PHP 文件:

<?php

    $number1 = $_POST['number1'];
    $number2 = $_POST['number2'];
    $number3 = $_POST['number3'];
    $number4 = $_POST['number4'];
    $number5 = $_POST['number5'];
    $number6 = $_POST['number6'];
    $number7 = $_POST['number7'];
    $number8 = $_POST['number8'];
    $number9 = $_POST['number9'];
    $number10 = $_POST['number10'];

    $myArray = Array($number1, $number2, $number3, $number4, $number5, $number6, $number7, $number8, $number9, $number10);

    echo $myArray;



?>

【问题讨论】:

    标签: php html arrays forms post


    【解决方案1】:

    print_r 可以工作,但如果你想控制格式化,你需要iterate 覆盖数组

    foreach ($myArray as $value) {
       echo "Value: $value<br />\n";
    }
    

    【讨论】:

    • 我也试过这种方式。我连续 10 次收到“数组”这个词。更接近,但 print_r 方式有效,但我想控制格式
    • 从 HTML 输入名称中删除 [] 后,更新现在应该可以工作了。我从 PHP 手册中获取了错误的示例。我强烈建议您阅读我在回答中链接到的 PHP 手册页。
    【解决方案2】:

    您的输入名称中不需要 [],number1, number2, ... 就足够了。然后只需使用 print_r 打印数组。

    【讨论】:

      【解决方案3】:

      详细说明,echo 需要一个字符串,并且不适用于数组。通常在调试时人们倾向于使用 var_dump(),它适用于对象、数组、字符串等。

      【讨论】:

        【解决方案4】:

        只需使用print_r

        echo '<pre>';
        print_r ($myArray);
        echo '</pre>';
        

        它将以人类可读的方式显示有关您的变量的信息。可以与数组和对象一起使用。

        【讨论】:

        • 效果很好,但为什么我会得到这个? Array ( [0] => Array ( [0] => 0 ) [1] => Array ( [0] => 9 )。我不明白。是说数组第一个元素的第一个元素吗?那里行中有很多第一个元素
        • 使用echo '&lt;pre&gt;';。它将更具可读性。查看更新。
        • 这是在数组的每个元素中创建一个数组吗?我看到每个数字有两个 [0]?
        • 是的,因为您使用[] 命名您的输入。你必须删除它。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-14
        • 2018-07-11
        • 1970-01-01
        • 2015-03-26
        相关资源
        最近更新 更多