2016-05-05 68 views
0

我想只顯示數組的偶數索引,但它不起作用。在數組中顯示偶數索引

這裏是我的代碼:

$color = array("Red", "Pink", "Blue", "Baby Blue", "Green", "Lime", "Gray", "Sunshine"); 

for ($i = 0; $i < count($color); $i++) { 
    if ($color[$i] % 2 === 0) { 
     echo "$i is $color"; 
    } 
} 

我在做什麼錯?

+2

定義「它不工作」。 –

+0

要計算模數,您需要使用'$ i'的數值而不是'$ color [$ i]'的字符串值。即'if($ i%2 == 0)'。 – showdev

+0

您談論_array indexes_,然後對_array values_進行實際計算。即'$ i'(數組索引)和'$ color [$ i]'(數組值)。 imo,對數組索引('$ i')進行'偶數'計算。 –

回答

1

你的問題是在4號線主要是和線#5部分:

$color = array("Red", "Pink", "Blue", "Baby Blue", "Green", "Lime", "Gray", "Sunshine"); 

for ($i = 0; $i < count($color); $i++) { 
    if ($i % 2 === 0) { // <- here 
     echo "$i is ".$color[$i]; 
    } 
} 

你的代碼基本上是等同於:

if ('Red' % 2 === 0) { // with every single color 

由於您使用的是索引數組,另一種實現你需要的方式是:

foreach ($color as $k=>$v) { 
    if ($k % 2 === 0) { 
     echo "$k is $v"; 
    } 
} 
0

你忘了添加$color的索引$i like:$color[$i]。並錯過檢查條件。

$color = array("Red", "Pink", "Blue", "Baby Blue", "Green", "Lime", "Gray", "Sunshine"); 

for ($i = 0; $i < count($color); $i++) { 
    if ($i % 2 === 0) { //Here miss check 
     echo "$i is $color[$i]"; //here missing index 
    } 
} 

爲簡單起見:刪除if條件。

for ($i = 0; $i < count($color); $i+=2){ 
    echo "$i is $color[$i]"; //here missing index 
} 
+0

它是非常糟糕的事情,給予downvote有效的答案。 –

+0

我沒有downvote(第一部分似乎對我很好),但你添加的第二部分有一些問題。 –

+0

問題?你提到什麼問題? –

4

更簡單的方法是在for循環中只添加兩個而不是一個。

for ($i = 0; $i < count($color); $i+=2) { 
    echo "$i is $color[$i]"; 
} 
+2

這是生活中簡單的事情讓我高興:-) – MonkeyZeus