【发布时间】:2013-10-13 12:46:05
【问题描述】:
我在将第 0 个数组元素作为 FOR 循环的输出时遇到问题。我希望服务器打印字母 A B C D E;如果某些东西与数组中的元素不同,则应该打印其他东西。所以我为此制定了条件和 switch 语句。
但是数组的第 0 个元素总是作为不同的元素打印出来。我不知道我做错了什么。你能帮我么?你能解释一下为什么会这样吗?
<?php
$array = array(0,1,2,3,4,"something");
for($i=0;$i<count($array);$i++){
echo '<br>'.$i;
if ($array[$i] == 'something') {
echo ' something ';
} else {
switch ($array[$i])
{ case "0":
echo ' A';
break;
case "1":
echo ' B';
break;
case "2":
echo ' C';
break;
case "3":
echo ' D';
break;
case "4":
echo ' E';
break;
default:;
};
};
};
?>
我的输出是这样的:
0 something
1 B
2 C
3 D
4 E
5 something
但我期待这个:
0 A
1 B
2 C
3 D
4 E
5 something
【问题讨论】:
-
尝试在循环之前添加
reset($array) -
PHP 中的大多数字符串都等于
0,使用===来阻止它。您可以使用var_dump(0 == "hello");自行测试 -
你先尝试
0 == 'something'了吗? -
@SmokeyPHP - 谢谢,现在可以正常工作了 :)
标签: php arrays if-statement for-loop