如何解决如何防止 foreach 循环不删除重复项
这是我的json代码
[{"name":"Lahore","code":"LHE"},{"name":"Rawalpindi","code":"RWP"},{"name":"Wah Cantt","code":"RWP"}]
$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 举报,一经查实,本站将立刻删除。