Php 合并数组并附加唯一值
我有一个类似这样的json数组Php 合并数组并附加唯一值,php,arrays,merge,Php,Arrays,Merge,我有一个类似这样的json数组 [ { "u_id": "16", "name": "Hacker", "number": "9898405566", "GroupName": "Hackers" }, { "u_id": "15", "name": "steve jobs", "number": "9898005566", "GroupName
[
{
"u_id": "16",
"name": "Hacker",
"number": "9898405566",
"GroupName": "Hackers"
},
{
"u_id": "15",
"name": "steve jobs",
"number": "9898005566",
"GroupName": "Apple"
},
{
"u_id": "16",
"name": "Hacker",
"number": "9898405566",
"GroupName": "Apple"
}
]
我想合并具有相同数据的字段,并附加具有唯一数据的唯一字段,如下所示
[
{
"u_id": "16",
"name": "Hacker",
"number": "9898405566",
"GroupName": "Hackers,Apple"
},
{
"u_id": "15",
"name": "steve jobs",
"number": "9898005566",
"GroupName": "Apple"
},
]
我已经通过了一些方法,比如array\u merge
和array\u unique
但是没有达到我想要的
感谢您的帮助。使用array_unique()PHP函数,您可以做到这一点
<?php
$new_array = array_unique(json_decode($old_array,true));
您可以简单地使用foreach
如下
$result = [];
foreach (json_decode($json,true) as $key => $value) {
$hash = $value['u_id'];
if(isset($result[$hash])){
$result[$hash]['GroupName'] .= ",{$value['GroupName']}";
}else{
$result[$hash] = $value;
}
}
echo json_encode(array_values($result));
这是一个jsonyes@aldrin27数组,它会有什么不同吗?展示一些您已经尝试过的代码怎么样?我将首先对该json进行json_解码,然后使用php数组函数合并数据。@Jaimin当然json数组和php数组之间有区别!前者是javascript。伟人。。。非常好的解决方案..从php.net文档中:“请注意,array_unique()不适用于多维数组。”
确实如此,但使用foreach循环可以完成它…foreach($old_array AS$array){array_push($newarray,array_unique($array));}