public static function merge($array1, $array2)
{
$array1 = (array) $array1;
$array2 = (array) $array2;
foreach ($array2 as $key => $val) {
if (is_array($array1[$key])) {
if (is_array($array2[$key])) {
$val = self::merge($array1[$key], $array2[$key]);
}
}
$array1[$key] = $val;
}
reset($array1);
return $array1;
}
/** * @test */ public function canOperateArrayMergeFunction() { $array1 = array('foo' => array('bar' => TRUE)); $array2 = array('foo' => array('foo' => TRUE)); $expected = array('foo' => array('bar' => TRUE, 'foo' => TRUE)); $product = RecursiveArrayUtility::merge($array1, $array2); $this->assertSame($expected, $product); }