2017-03-04 57 views
0

我爲這個任務做了這個數組,但是我不太明白。我需要做的是從我的數組中識別出一個字符串,並在「我正在學習它」時打印出來。我覺得我很接近,但我一直在獲取未定義的偏移量。PHP未定義的偏移量數組錯誤

$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"; 
} 
+0

除非使用'for'循環是強制性的,你可以使用['in_array'](http://php.net/manual/en/function.in-array.php)顯式循環。 –

回答

2

你缺少括號內爲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"; 
    } 
} 
+0

這個修正了它,我看到我出錯了,謝謝! –

1

你錯過了花括號在for循環。

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

嘗試合併成塊,並緊貼你的塊的佈局形式,否則它很難注意到,當你的括號不正確連接。