當我運行以下時,我得到'B.C.'
,但我試圖得到'BC'
。array_search的問題
我設置array_search
做了嚴格的比較,爲什麼不是返回"BC"
?
如果我通過"Alberta"
,我得到"AB"
,這是正確的。
<?
function cleanProvince($province)
{
$values = array(
'AB' => 'Alberta',
'BC' => 'B.C.',
'BC' => 'British Columbia',
'ON' => 'Ontario',
'ON' => 'Onatrio',
'ON' => 'Ont',
'NS' => 'Nova Scotia',
'QC' => 'Quebec'
);
if ($key = array_search(@$province, $values, true)) {
return $key;
} else {
return $province;
}
}
echo (cleanProvince("B.C."));
?>
jrubins:他得到'B.C.'如帖子中指定的那樣。 – Overv
您可能會更好地構建您的數組,其長名稱作爲鍵,縮寫作爲值。然後搜索不會重複的鍵。 –
錯誤抑制運算符不是你的朋友。使用'isset()'等等(*也是,在這種情況下,它將永遠不會壓制任何東西*) – Dan