通过for循环在数组中声明php变量

时间:2014-03-19 17:03:35

标签: php arrays

如何使用for循环声明数组中的变量。我的页面上有3个输入字段,因此当按下提交按钮时,它应该处理以下代码行。在我的html页面上,有一些名为:question1,question2和question3的字段。

这是process.php文件的代码。由于某些原因它不起作用,我想这里有几个错误,但我找不到它。

<?php

$question = array();
for($j=1; $j<4; $j++) {
    $question[j] = $_POST['question[j]'];

$result;
$n=1;

if($question[j] != "") {
    $result = $n.'): '.$question[j].'<br/><br/>';
    $n++;
}
}

echo $result;

?>

3 个答案:

答案 0 :(得分:2)

<?php

$question = array();
$result = "";

for($j=1; $j<4; j++) {
    $question[$j] = $_POST["question$j"];

    if($question[$j] != "") {
        $result .= $j.'): '.htmlentities($question[$j]).'<br/><br/>';
    }
}

echo $result;

?>

虽然你不需要阵列。

<?php
$result = "";

for($j=1; $j<4; j++) {
    $result .= $_POST["question$j"]!="" ? htmlentities($_POST["question$j"]).'<br/><br/>':'';        
}

echo $result;
?>

答案 1 :(得分:1)

对于初学者来说,数组是零索引的,所以我想你想要这个:

for($j=0; $j<3; j++)

除此之外,我们还没有评估j的价值:

$_POST['question[j]']

我想你可能会想要这样的东西:

$_POST["question$j"]

然而,如果您将索引更改为上述内容,因为您的元素的名称以1而不是0开头,那么您需要考虑到这一点:

$_POST['question' . $j+1]

答案 2 :(得分:0)

您可以使用以下HTML代码

<input type="text" name="question[a]" />
<input type="text" name="question[b]" />
<input type="text" name="question[c]" />

使用以下PHP代码:

foreach($_POST["question"] as $key => $value)
{
    // $key == "a", "b" or "c"
    // $value == field values
}

记得清理你的输入!