public static function dotGet(array $array, $key, $default = null)
    {
        if (is_null($key)) {
            return $array;
        }

        if (isset($array[$key])) {
            return $array[$key];
        }

        foreach (explode('.', $key) as $segment) {
            if (!is_array($array) || !array_key_exists($segment, $array)) {
                return Std::thunk($default);
            }

            $array = $array[$segment];
        }

        return $array;
    }
public static function dotGet(array $array, $key, $default = null)
    {
        if (is_null($key)) {
            return $array;
        }

        if (isset($array[$key])) {
            return $array[$key];
        }

        foreach (explode('.', $key) as $segment) {
            if (!is_array($array) || !array_key_exists($segment, $array)) {
                return Std::thunk($default);
            }

            $array = $array[$segment];
        }

        return $array;
    }
public static function dotGet ( array $ array , $ key , $ default = null ) { if ( is_null ( $ key ) ) { return $ array ; } if ( isset ( $ array [ $ key ] ) ) { return $ array [ $ key ] ; } foreach ( explode ( '.' , $ key ) as $ segment ) { if ( ! is_array ( $ array ) || ! array_key_exists ( $ segment , $ array ) ) { return Std :: thunk ( $ default ) ; } $ array = $ array [ $ segment ] ; } return $ array ; }
Get the resulting value of an attempt to traverse a key path.

Each key in the path is separated with a dot.

For example, the following snippet should return `true`:
```php
Arr::dotGet([
'hello' => [
'world' => true,
],
], 'hello.world');
```

Additionally, a default value may be provided, which will be returned if
the path does not yield to a value.

@param array $array
@param string $key
@param null|mixed $default

@return mixed
Get the resulting value of an attempt to traverse a key path .