Я хочу сравнить 2 json, и если будет новый массив, он получит новый массив и вставит его в базу данных.
Это старый json,
[{"menu_id":"1","menu_name":"Rapat 2018","parent_id":"0","link":"informent.online","status":"1"},
{"menu_id":"3","menu_name":"Rapat 2019","parent_id":"0","link":"#","status":"1"}]
Thisэто новый json,
[{"menu_id":"1","menu_name":"Rapat 2018","parent_id":"0","link":"informent.online","status":"1","children":[{"menu_id":"","menu_name":"Rapat RW","parent_id":"1","link":"#","status":"1"}]},
{"menu_id":"3","menu_name":"Rapat 2019","parent_id":"0","link":"#","status":"1"}]
Существует новый массив от детей (menu_name: Rapat RW), я хочу получить этот новый массив, чтобы я мог вставить его в базу данных.
Этоэто то, что я сделал,
$json_str1 = ' [
{
"menu_id": "1",
"menu_name": "Rapat 2018",
"parent_id": "0",
"link": "informent.online",
"status": "1"
},
{
"menu_id": "3",
"menu_name": "Rapat 2019",
"parent_id": "0",
"link": "#",
"status": "1"
}
]';
$json_str2 = ' [
{
"menu_id": "1",
"menu_name": "Rapat 2018",
"parent_id": "0",
"link": "informent.online",
"status": "1",
"children": [
{
"menu_id": "",
"menu_name": "Rapat RW",
"parent_id": "1",
"link": "#",
"status": "1"
}
]
},
{
"menu_id": "3",
"menu_name": "Rapat 2019",
"parent_id": "0",
"link": "#",
"status": "1"
}
]';
list($arr1, $arr2) = [json_decode($json_str1), json_decode($json_str2)];
$common_items = array_intersect($arr2, $arr1);
$result = array_filter(array_merge($arr1, $arr2), function($v) use($common_items){
return !in_array($v, $common_items);
});
print_r($result);
Но я возвращаю ошибку "Объект класса stdClass не может быть преобразован в строку" из "Функция: array_intersect" В чем проблема?Любая помощь будет оценена!