2016-10-16 3 views
-2

У меня есть два массиваКак объединить два JSON массива в PHP на основе ключа

array1 = array(
    {'id' => '1', 'name' => 'A'}, 
    {'id' => '2', 'name' => 'B'}, 
    {'id' => '3', 'name' => 'C'}, 
    {'id' => '4', 'name' => 'D'} 
); 

array2 = array(
    {'id' => '1', 'flag' => '1'}, 
    {'id' => '3', 'flag' => '0'} 
); 

Мне нужно, чтобы объединить их на основе ключа «ид», так что результат должен быть

array1 = array(
{'id' => '1', 'name' => 'A', 'flag' => '1'}, 
{'id' => '2', 'name' => 'B'}, 
{'id' => '3', 'name' => 'C', 'flag' => '0'}, 
{'id' => '4', 'name' => 'D'} 
); 

любая помощь?

+1

Я уже ответил здесь: Проверьте это: http://stackoverflow.com/questions/40054674/php-merge-json-arrays/40054880#40054880 –

+1

Этот вопрос уже ответили там Http: // StackOverflow .com/a/14843843/5788489 –

+0

@ NareshKumar.PI не вижу, что JSON упоминается где-нибудь в [вопросе] (http://stackoverflow.com/revisions/40072805/1). Пожалуйста, не редактируйте вопрос, если только OP явно не упоминает об этом. –

ответ

0
function merge_two_arrays($array1,$array2) { 
    $data = array(); 
    $arrayAB = array_merge($array1,$array2); 
    foreach ($arrayAB as $value) { 
     $id = $value['id']; 
     if (!isset($data[$id])) { 
     $data[$id] = array(); 
     } 
     $data[$id] = array_merge($data[$id],$value); 
    } 
    return $data; 
    } 

$master_array = merge_two_arrays($array1,$array2); 
Смежные вопросы