Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中基于一个键合并两个JSON数组_Php_Arrays - Fatal编程技术网

如何在PHP中基于一个键合并两个JSON数组

如何在PHP中基于一个键合并两个JSON数组,php,arrays,Php,Arrays,我有两个数组 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',

我有两个数组

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'}
);
我需要根据'id'键合并它们,因此结果应该是

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

有什么帮助吗?

我已经在这里回答了:检查这个:这个问题已经在那里得到了回答@NareshKumar.p我没有看到在任何地方提到JSON。除非OP明确提到,否则请不要编辑该问题。下面是一个解决方案,允许您根据规则将
$idKeyName
指定为第三个参数来合并两个数组。它可以是您的
id
,但对其他人来说是
hash
timestamp
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);