【问题标题】:PHP undefined offset array errorPHP未定义的偏移量数组错误
【发布时间】:2017-03-04 09:10:10
【问题描述】:

我为一个作业创建了这个数组,但我不能完全正确。我需要做的是从我的数组中识别一个字符串并在“我正在学习它”时打印出来。我想我已经接近了,但我不断得到未定义的偏移量。

 $myArray = array ("C ", "Java", "C++ ", "Objective-C", "C#", "PHP","(Visual)
                   Basic", "Python", "JavaScript", "Perl", "Ruby",
                   "PL/SQL", "Delphi/Oject pascal","Visual Basic.Net",
                   "lisp", "Pascal", "Ada", "Transact-SQL", "Logo", "NXT-G");

for ($i = 0; $i<sizeof($myArray); $i++)
    echo $myArray[$i];

if($myArray[$i] == "C") {
    echo "I'm learning this too!";
}
else {
    echo "Your not learning anything";
}

【问题讨论】:

  • 除非必须使用for 循环,否则您可以使用in_array 函数来执行相同操作,而无需显式循环。

标签: php arrays offset


【解决方案1】:

for loop 缺少括号

    $myArray = array ("C ", "Java", "C++ ", "Objective-C", "C#", "PHP","(Visual)
                   Basic", "Python", "JavaScript", "Perl", "Ruby",
                  "PL/SQL", "Delphi/Oject pascal","Visual Basic.Net",
                 "lisp", "Pasca", "Ada", "Transact-SQL", "Logo", "NXT-G");

for ($i = 0; $i< sizeof($myArray); $i++)
{
  echo $myArray[$i]."<br>";
  if($myArray[$i] == "C") {
    echo "I'm learning this too!";
  }
  else {
    echo "Your not learning anything";
  }
}

【讨论】:

    【解决方案2】:

    你在 for 循环中缺少括号。

    for 循环多次执行 for 命令之后的单条指令。如果你想做多件事情,你需要用大括号将它们组合成一个块 { }

    for ($i = 0; $i<sizeof($myArray); $i++)
    {
         echo $myArray[$i];
         if($myArray[$i] == "C") 
         {
             echo "I'm learning this too!";
         }
         else
         {
             echo "Your not learning anything";
         }
    }
    

    尝试并严格遵守您的块的布局格式,否则当您的大括号没有正确连接时,很难注意到。

    【讨论】:

      猜你喜欢
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-17
      • 1970-01-01
      • 2016-10-01
      相关资源
      最近更新 更多