public static function doMergeRecursive(&$reference, $append) { foreach ($append as $key => $value) { if (isset($reference[$key])) { if (is_array($reference[$key]) && is_array($value)) { $reference[$key] = \UArray::mergeRecursive($reference[$key], $value); } else { if (is_numeric($key)) { $reference[] = $value; } else { $reference[$key] = $value; } } } else { $reference[$key] = $value; } } }