php - 删除多维数组中的重复项
问题描述
我有一个包含多个相同数据的数组:
array(2) {
[0]=>
array(2) {
["id"]=>
string(11) "43000173601"
["data"]=>
array(2) {
[0]=>
array(2) {
["id"]=>
string(5) "52874"
["name"]=>
string(3) "x70"
}
[1]=>
array(2) {
["id"]=>
string(5) "52874"
["name"]=>
string(3) "x70"
}
}
}
[1]=>
array(2) {
["id"]=>
string(11) "43000173602"
["data"]=>
array(1) {
[0]=>
array(2) {
["id"]=>
string(5) "52874"
["name"]=>
string(3) "x70"
}
}
}
}
我曾尝试使用array_unique()
删除这些条目,但收到此错误:
数组到字符串的转换
外部数组包含路线 ID,一些公共汽车可能有 2 条不同的路线,因此在这种情况下,它们可以保留,但是我只想删除 1 条路线中的重复条目:
[0]=>
array(2) {
["id"]=>
string(11) "43000173601"
["data"]=>
array(2) {
[0]=>
array(2) {
["id"]=>
string(5) "52874"
["name"]=>
string(3) "x70"
}
[1]=>
array(2) {
["id"]=>
string(5) "52874"
["name"]=>
string(3) "x70"
}
}
解决方案
代码可以是这样的:
$new_array = [];
foreach ($your_array as $item) {
if (!isset($new_array[$item['id']])) {
// item id is not in `new_array` - add `item`
$new_array[$item['id']] = $item;
} else {
// item id already presents - add `data` item to it
$new_array[$item['id']]['data'][] = $item['data'];
}
}
推荐阅读
- android-studio - 类型参数不在其范围内预期:任何找到:字符串
- performance - 为 Apache prefork 的每个虚拟主机保留工作人员
- python - 找不到 pyuic5 命令,我做了一切,但仍然得到同样的错误
- localization - 如何处理 i18next 键名中的长文本?
- javascript - 是否可以使用变量调用函数?
- go - 为什么 for-range 的行为会根据切片结构的大小而有所不同?
- java - 启动 Windows 10 Paint3D 以打开特定图像文件
- angular - Angular Httpclient有CORS错误vs但没有获取
- java - SQL Java中的参数索引超出范围使用phmyadmin
- c# - 像本地文件一样加载远程 ZIP 文件的 HTTP 流实现 - DotNetZip