微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

这是我的json代码

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

这是我的PHP代码

$city_result = '[{"name":"Lahore","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"}

它从列表中删除了拉瓦尔品第。 Rawalpindi 和 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);

输出:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。