* // Returns "taylor" * $item = Arr::get(array('name' => 'taylor'), 'name', $default); * * // Returns "taylor" * $item = Arr::get(array('name' => array('is' => 'taylor')), 'name.is'); * * * @param array $array * @param string $key * @param mixed $default * @return mixed */ public static function get($array, $key, $default = null) { if (is_null($key)) return $array; foreach (explode('.', $key) as $segment) { if ( ! array_key_exists($segment, $array)) { return is_callable($default) ? call_user_func($default) : $default; } $array = $array[$segment]; } return $array; } }