這裏是我的功能:在這種情況下PHP in_array沒有表現如預期
function checkArray($color,$file) {
$color = trim($color);
$settings = getSettings($file,1);
if (in_array($color,$settings)) return true;
else return false;
}
$設置是一個數組:
Array
(
[0] => Black
[1] => Blackpol
[2] => Blk
[3] => Blue
[4] => Bronz
[5] => Bronze
[6] => Brz
)
我有這個功能用$顏色參數循環幾次每次都在變化。樣本值是「黑色」,「藍色」等。長話短說,checkArray()應該很少返回false。然而,它每次都會返回錯誤,我不能爲我的生活找出原因。我嘗試不區分大小寫的搜索,修剪,打印單個輸出和比較字符串(「黑色」與「黑色」)...我不是新的PHP或數組,但我不明白爲什麼這可能會返回false。請幫助!
的print_r的$設置(if語句前右)$顏色
Array
(
[0] => Black
[1] => Blackpol
[2] => Blk
[3] => Blue
[4] => Bronz
[5] => Bronze
[6] => Brz
[7] => Bz
[8] => Cherry
[9] => Gold
[10] => Gun
[11] => Gunmet
[12] => Gunmetal
[13] => Pol
[14] => Poly
[15] => Quentin
[16] => Rootbeer
[17] => Vis
)
VAR DUMP(右前if語句)
string(5) "Black"
在'if'語句之前執行'$ settings'和'$ color'的'var_dump'來仔細檢查變量值。你可能忽略了某些東西。 – 2011-04-24 17:34:31
'$ settings'中有什麼。你可以傾倒它,並告訴我們? – PeeHaa 2011-04-24 17:34:52
你真的應該只是'返回in_array($顏色,$設置);' – 2011-04-24 17:36:03