【问题标题】:Array starting at Zero数组从零开始
【发布时间】:2011-07-04 01:19:25
【问题描述】:

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

【问题讨论】:

  • 为什么你需要从一个开始?特别是如果你想要第一行??
  • 不要试图修复没有损坏的东西。
  • 不要为这种微不足道的事情更改数组的键。要么,$i + 1,要么初始化另一个变量来保持问题的数量?
  • 有这样的例子吗,罗素?我还在学习。

标签: php arrays


【解决方案1】:

如果您只想输出每个问题(无需任何验证!),您根本不需要 question 变量。做吧:

echo 'Question #' . ($i + 1) . ': ' . $_POST['question'][$i];

【讨论】:

    【解决方案2】:

    您似乎想获得输出

    <b>Question 1:</b> Blah Blah
    

    但是。数组键默认从0开始

    有两种获取方式。如果您真的想要一个以键号 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";  
       }    
    }
    

    希望对你有帮助。

    【讨论】:

    • 嗯,添加后我得到Parse error: syntax error, unexpected '"', expecting ',' or ';' in /home/organik/public_html/beta/test.php on line 238
    • 第 238 行:$question=$_POST['question'][$i]."&lt;br /&gt;"; echo "&lt;b&gt;Question ".$i+1.":&lt;/b&gt; $question";
    • if(isset($_POST['question'])) { foreach (($_POST['question']) as $key=&gt;$value) { $key +=1; echo "&lt;b&gt;Question ".$key.":&lt;/b&gt; $value"; } }
    • 或者试试$question_no = $i + 1; $question=$_POST['question'][$i]."&lt;br /&gt;"; echo "&lt;b&gt;Question $question_no :&lt;/b&gt; $question";希望它有效
    • 感谢 thurein!效果很好。 :)
    【解决方案3】:

    对于这里的所有答案.. 我相信他们知道.. 出于逻辑和简单的原因,从零开始您的数组。因为..就像Russel Dias说的:所有数组都从0开始。如果你不想让它复杂,就从0开始吧。

    对所有程序员的高度推荐 :D 祝你好运!

    【讨论】:

    • 哦,只需在您的$i 添加+1 喜欢:echo "&lt;b&gt;Question".$i+1.":&lt;/b&gt;"
    【解决方案4】:

    默认情况下,所有数组键都从索引0 开始(除非明确说明),因此从1 开始将不包括第一个结果。

    【讨论】:

      【解决方案5】:

      如果您需要以 1 开头的发布数据(实际上这毫无意义),您必须更改您的 html

      <input type="text" name="question[]" class="text">
      

      <input type="text" name="question[1]" class="text">
      

      【讨论】:

      • @Brandon:不起作用不是对问题的解释。在这样的问题上,我能给出的唯一答案是:“所以以某种方式解决它”
      • 它只是让它根本不回应任何东西。
      猜你喜欢
      • 1970-01-01
      • 2014-02-13
      • 2022-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-05
      • 2023-03-07
      • 2013-09-14
      相关资源
      最近更新 更多