标签: php string equality string-comparison
$x = array(3) { [0]=> "A - 1" [1]=> "B - 4" ["Total"]=> "5" }
TRY:
foreach($x as $k=>$v){ if($k=="Total"){break;} echo $v."<br>"; }
因为我只想输出:
A - 1 B - 4
但我在输出中没有看到任何内容。
我错了什么?
感谢
答案 0 :(得分:5)
你在输出中没有得到任何结果,因为你在第一时间突破了循环。
在第一次迭代$k中,将值为0的数字与"Total"进行比较,这是一个字符串,此比较返回true,因为PHP将转换字符串{ {1}}到比较前的数字,"total"转换为数字时为"total"。
$k
0
"Total"
true
"total"
Ideone
要解决此问题,请不要使用0,而是使用==代替比较之前将数字键转换为字符串,或者使用strcmp来检查类型和值。
==
strcmp
答案 1 :(得分:-1)
将echo $v."<br>";放入else语句......
echo $v."<br>";