如何防止 foreach 循环不删除重复项

2024-01-08

这是我的 json 代码

[{"name":"Lahore","code":"LHE"},{"name":"Rawalpindi","code":"RWP"},{"name":"Wah Cantt","code":"RWP"}]

这是我的 php 代码

$city_result = '[{"name":"Lahore","code":"LHE"},{"name":"Rawalpindi","code":"RWP"},{"name":"Wah Cantt","code":"RWP"}]';

$cityList = [];
$cities = (array)json_decode($city_result,1);
foreach ($cities as $city) {
    $cityList[$city['code']] = $city['name'];   
}

echo json_encode($cityList,true);

当我回显结果时

{"LHE":"Lahore","RWP":"Wah Cantt"}

它将拉瓦尔品第从名单中删除。拉瓦尔品第和瓦坎特的代码都是 RWP。我想返回这两个城市。 需要帮忙。


目前,城市代码与其名称之间存在一对一的映射,并且每个代码只能有一个这样的映射。

看起来您想要使用数组来进行 1 对 n 映射(请注意附加的[]在循环中附加当前值):

$city_result = '[{"name":"Lahore","code":"LHE"},{"name":"Rawalpindi","code":"RWP"},{"name":"Wah Cantt","code":"RWP"}]';

$cityList = [];
$cities = (array)json_decode($city_result,1);
foreach ($cities as $city) {
    $cityList[$city['code']][] = $city['name'];   
}

echo json_encode($cityList,true);

Output:

{"LHE":["Lahore"],"RWP":["Rawalpindi","Wah Cantt"]}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何防止 foreach 循环不删除重复项 的相关文章

随机推荐