合并数组并追加唯一值

时间:2015-09-14 07:39:16

标签: php arrays merge

我有一个像这样的json数组

[
    {
        "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_mergearray_unique但未能达到我想要的效果,

任何帮助将不胜感激,谢谢..

2 个答案:

答案 0 :(得分:3)

您可以像{/ p>一样使用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));

Demo

答案 1 :(得分:0)

使用array_unique()PHP函数,你可以做到......

<?php
$new_array = array_unique(json_decode($old_array,true));

它一直对我有用,使用array_unique也会删除没有值的数组键...