HippoPHP\Hippo\Config\YAMLConfigReader::mergeRecursive PHP Метод

mergeRecursive() приватный Метод

private mergeRecursive ( $array1, $array2 ) : array<
Результат array<
    private function mergeRecursive($array1, $array2)
    {
        $result = [];
        foreach (array_merge(array_keys($array1), array_keys($array2)) as $key) {
            if (!isset($array1[$key])) {
                $result[$key] = $array2[$key];
            } elseif (!isset($array2[$key])) {
                $result[$key] = $array1[$key];
            } elseif (is_array($array1[$key]) || is_array($array2[$key])) {
                if (!is_array($array1[$key]) || !is_array($array2[$key])) {
                    throw new \Exception('Cannot merge a scalar with an array');
                }
                $result[$key] = $this->mergeRecursive($array1[$key], $array2[$key]);
            } else {
                $result[$key] = $array2[$key];
            }
        }
        return $result;
    }