function _array_merge_recursive($dest, $new) { if (!is_array($dest) && is_array($new)) return $new; if ( is_array($dest) && !is_array($new)) return $dest; if (!is_array($dest) && !is_array($new)) return array(); foreach ($new as $k => $v) { if (is_array($v) && isset($dest[$k]) && !is_numeric($k)) { $dest[$k] = _array_merge_recursive($dest[$k], $v); } else if (!is_numeric($k)) { $dest[$k] = $new[$k]; } else { $dest[] = $new[$k]; } } return $dest; }
Первый массив
Второй массив
Результат