数组从零开始

时间:2011-02-25 03:36:43

标签: php arrays

为什么这不起作用?我需要它从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:”开始回应。

5 个答案:

答案 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";  
   }    
}

希望它有用。