2011-03-10 72 views
2
$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

你的輸出是什麼? – hsz 2011-03-10 09:56:24

+0

輸出不是東西 – kn3l 2011-03-10 09:59:05

回答

5

你跳出循環非常拳頭時間你什麼也得不到輸出。

在第一次迭代$k與值0這是與"Total"相比數字它是一個字符串,該比較返回true因爲PHP將在轉換成數字字符串"total"轉換爲數字比較和"total"之前是0

Ideone

要解決此問題不使用==,使用strcmp而不是將數字鍵轉換爲字符串比較之前,或者您可以使用===哪些檢查作爲價值型爲好。

Ideone

+1

很好的答案。但我怎麼辦我的情況? – kn3l 2011-03-10 10:03:47

+0

@lEnAk:答覆已更新。 – codaddict 2011-03-10 10:08:45

+0

我不知道它是否支持PHP 5.3或不?目前我正在使用5.3 – kn3l 2011-03-10 10:10:45

-1

echo $v."<br>";在else語句......