首先,我还没有熟悉的PHP,所以我有这个代码,我没有自己写。
.utf8_decode($var['ciudad']).
它返回一个城市的值,这是一个数字,66170或66001。
我需要的是,因为它不会返回数字而是返回城市的名称。所以我们说回报是'66170',它应该显示'伦敦'不是'66170'。
现在我知道我应该使用str_replace。但是这里是我被卡住的地方,这段代码中有utf8_decode,它与我的代码混淆。 (或者只是让我困惑)我的想法或多或少是这样的:
$ciudad= .utf8_decode(str_replace('66170 ', 'London',($var['ciudad']).'))
答案 0 :(得分:2)
简答
你要做的是这个
$ciudad = utf8_decode(str_replace('66170', 'London',$var['ciudad'] ));
删除点,空格,一些括号和引号。
长答案
我建议使用两个数组。第一个包含所有城市编号,第二个包含所有城市名称,然后将它们用作str_replace
参数。例如:
$citiesCodes = Array(1, 2, 3, 4, ... , 66170);
$citiesNames = Array('New York', 'Santo Domingo', 'La Paz', 'Lima', ... , 'London');
$ciudad = utf8_decode(str_replace($citiesCodes, $citiesNames, $var['ciudad'] ));
答案 1 :(得分:0)
你的想法是对的。你唯一遗漏的是你首先需要解码它:
$ciudad = str_replace('66170', 'London', utf8_decode($var['ciudad']));
如果您有许多城市代码,最好使用strtr()
。我根据你上次的评论更新了我的建议:
$cities = Array(
'66170' => 'London',
'66001' => 'New York',
'66002' => 'Beijing',
);
$ciudad = strtr($var['ciudad'], $cities);