我试图仅显示数组的偶数指数,但它不起作用。
这是我的代码:
$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";
}
}
我做错了什么?
答案 0 :(得分:4)
更简单的方法是在for循环中添加两个而不是一个。
for ($i = 0; $i < count($color); $i+=2) {
echo "$i is $color[$i]";
}
答案 1 :(得分: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";
}
}
答案 2 :(得分: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
}