php中的数组合并


Array merge or combine in php

$arr1适用于所有值。这里是checked=false .

$arr1 = [{"event_id":"2","name":"I have a new message","checked":"false"},{"event_id":"3","name":"A meeting awaits
     me","checked":"false"},{"event_id":"4","name":"Someone visited my profil","checked":"false"},{"event_id"
    :"5","name":"Someone like my profile","checked":"false"},{"event_id":"6","name":"My picture was approved"
    ,"checked":"false"},{"event_id":"7","name":"My picture was rejected","checked":"false"},{"event_id":"8"
    ,"name":"VIP purchase confirmation","checked":"false"}];

$arr2仅用于选中的值。这里是checked=true

$arr2 = [{"event_id":"2","name":"I have a new message","checked":"true"},{"event_id":"3","name":"A meeting awaits
     me","checked":"true"},{"event_id":"4","name":"Someone visited my profil","checked":"true"},{"event_id"
    :"5","name":"Someone like my profile","checked":"true"},{"event_id":"7","name":"My picture was rejected"
    ,"checked":"true"},{"event_id":"8","name":"VIP purchase confirmation","checked":"true"}]

现在我想要一个像下面这样的数组,其中"checked":"false"answers"checked":"true"都将在那里。这怎么可能呢?

$arr3 = [{"event_id":"2","name":"I have a new message","checked":"true"},{"event_id":"3","name":"A meeting awaits
     me","checked":"true"},{"event_id":"4","name":"Someone visited my profil","checked":"true"},{"event_id"
    :"5","name":"Someone like my profile","checked":"true"},{"event_id":"6","name":"My picture was approved"
    ,"checked":"false"},{"event_id":"7","name":"My picture was rejected","checked":"true"},{"event_id":"8"
    ,"name":"VIP purchase confirmation","checked":"true"}];

你的问题需要像这样:合并JSON对象

按照以下步骤将json_objects加入到single array中要容易得多。

  1. 需要对$arr1$arr2执行json_decode()
  2. 然后执行json_decode()后,您需要使用array_merge(),因为在json_decode()之后,您的数据将作为array(),因此您可以轻松合并两个数组。
  3. 最后一步,如果你需要输出作为json_object(),你需要执行json_encode()的结果数组之后,你得到的array_merge()

场景示例

<?php
$json_first = '{
    "id": "#001",
    "username": "Name One",
    "type": "ADMIN",
    "status": "ACTIVE"   
}';
$json_second =  '{
    "id": "#002",
    "username": "Name Two",
    "type": "USER",
    "status": "INACTIVE"
}';
$user_info[] = json_decode($json_first,TRUE);
$user_info[] = json_decode($json_second,TRUE);
$json_merge = json_encode($user_info);
?>
<h4>Given JSON String:</h4> 
<p>
<div>$json1 = <?php echo $json1; ?></div>
<div>$json2 = <?php echo $json2; ?></div>
</p>
<h4>Output:</h4> 
<div><?php echo $json_merge; ?></div>
输出:

给定JSON字符串

{"id": "#001", "username": "Name One", "type": "ADMIN", "status": "ACTIVE" }
{"id": "#002", "username": "Name Two", "type": "USER","status": "INACTIVE" }

JSON合并后:

[{"id": "#001", "username": "Name One", "type": "ADMIN", "status": "ACTIVE" },{"id": "#002", "username": "Name Two", "type": "USER","status": "INACTIVE" }]

获取ARRAY MERGE通过移除重复项

如果您需要合并数组并删除重复的值,您可以选择array_unique()函数。

这将删除所有重复的,然后你可以执行你需要的操作。

<?php
$array_unique_result = array_unique($array_merge_result,SORT_REGULAR); // This will provide the unique values alone after the array is merged.
$json = json_encode($array_unique_result);
?>

参考:http://php.net/manual/en/function.array-unique.php