2016-05-05 4 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_. т. е. '$ 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 как: $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

Я не спускал (первая часть мне кажется прекрасной), но вторая часть, которую вы добавили, имеет пару проблем. –

+0

проблема? Какую проблему вы можете упомянуть? –

4

Более простой способ сделать это - просто добавить два вместо одного в цикл for.

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

Это простые вещи в жизни, которые заставляют меня двигаться вверх :-) – MonkeyZeus

Смежные вопросы