当我运行以下内容时,我会得到'B.C.',但我想要得到'BC'.
我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."));
?>
Run Code Online (Sandbox Code Playgroud)
您不能在一个阵列中拥有多个键.当你这样做时,第二个会覆盖第一个.
$values = array(
'AB'=>'Alberta',
'BC'=>'B.C.',
'BC'=>'British Columbia', # Overrides 'B.C.'
'ON'=>'Ontario',
'ON'=>'Onatrio', # Overrides 'Ontario'
'ON'=>'Ont', # Overrides 'Onatrio'
'NS'=>'Nova Scotia',
'QC'=>'Quebec',
);
Run Code Online (Sandbox Code Playgroud)
你传递"B.C."给cleanProvince.那不是$values,所以array_search返回false,因此cleanProvince返回"B.C.".
| 归档时间: |
|
| 查看次数: |
132 次 |
| 最近记录: |