字符串比较表现不同

时间:2011-03-10 09:49:06

标签: 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

但我在输出中没有看到任何内容。

我错了什么?

感谢

2 个答案:

答案 0 :(得分:5)

你在输出中没有得到任何结果,因为你在第一时间突破了循环。

在第一次迭代$k中,将值为0的数字与"Total"进行比较,这是一个字符串,此比较返回true,因为PHP将转换字符串{ {1}}到比较前的数字,"total"转换为数字时为"total"

Ideone

要解决此问题,请不要使用0,而是使用==代替比较之前将数字键转换为字符串,或者使用strcmp来检查类型和值。

Ideone

答案 1 :(得分:-1)

echo $v."<br>";放入else语句......