2016-05-05 7 views
0

に私は、配列の唯一の偶数インデックスを表示しようとしているが、それは働いていません。ここで表示偶数インデックスは、Array

は私のコードです:私は間違っ

$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'の数値ではなく、$色[$ i]は' 'の文字列値を使用したいと思います。私。 'if($ i%2 == 0)'です。 – showdev

+0

あなたは_arrayインデックスについて話し、次に_array値について実際の計算を行います。すなわち '$ i'(配列インデックス)と' $ color [$ i] '(配列値)です。 imo、配列インデックス( '$ i')の 'even'計算を行います。 –

答えて

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のように追加しています:$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

に問題がありますか?何が問題なの?文字列内の配列インデックス内の '$ i'から差し引く –

4

これを行う簡単な方法は、forループに1つではなく2つを追加することです。

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

それは:-) upvote私を作る生活の中で物事をシンプルです – MonkeyZeus

関連する問題