为什么这不起作用?我需要它从1开始而不是0.如果我将$ i更改为= 1则它不会抓住第一行。
http://www.mcregister.com/beta/test.php
<?php
if(isset($_POST['question'])) {
for ($i=0; $i<count($_POST['question']);$i++) {
$question=$_POST['question'][$i]."<br />"; echo "<b>Question $i:</b> $question";
}
}
?>
编辑:而不是从1开始......我只需要从“问题1:”而不是“问题0:”开始回应。
答案 0 :(得分:3)
默认情况下,所有数组键都从索引0
开始(除非明确说明),因此从1
开始将不包括第一个结果。
答案 1 :(得分:1)
如果您需要以1开头的发布数据(实际上毫无意义),您必须更改您的html
<input type="text" name="question[]" class="text">
到
<input type="text" name="question[1]" class="text">
等
答案 2 :(得分:1)
如果您只想输出每个问题(没有任何验证!),您根本不需要问题变量。只是做:
echo 'Question #' . ($i + 1) . ': ' . $_POST['question'][$i];
答案 3 :(得分:0)
对于这里的所有答案..并且我确定他们知道它...出于逻辑和简单的原因,在零开始你的数组。因为......如Russel Dias
所说:所有数组都从0开始。如果你不想让它变得复杂,那么从0开始。
所有程序员的高度推荐:D 祝你好运!
答案 4 :(得分:0)
看起来你想获得输出
<b>Question 1:</b> Blah Blah
但是。数组键默认从0开始
有2种方法可以获得它。如果你真的想要一个以1号键开头的数组。你可以通过以下代码来做。
$new_array = array();
for ($i=0; $i<count($_POST['question']);$i++) {
$new_array[$i+1] = $_POST['question'][$i];
}
但是如果你想只有1.你可以这样做
if(isset($_POST['question'])) {
for ($i=0; $i<count($_POST['question']);$i++) {
$question=$_POST['question'][$i]."<br />"; echo "<b>Question ".$i+1.":</b> $question";
}
}
希望它有用。