@@ 3-28 (lines=26) @@ | ||
1 | <?php |
|
2 | ||
3 | if (!function_exists('get')) { |
|
4 | /** |
|
5 | * Get an item from an array using "dot" notation. |
|
6 | * |
|
7 | * @param array $array |
|
8 | * @param string $key |
|
9 | * @param mixed $default |
|
10 | * @return mixed |
|
11 | */ |
|
12 | function get($array, $key, $default = null) |
|
13 | { |
|
14 | if (is_null($key)) { |
|
15 | return $array; |
|
16 | } |
|
17 | if (isset($array[$key])) { |
|
18 | return $array[$key]; |
|
19 | } |
|
20 | foreach (explode('.', $key) as $segment) { |
|
21 | if (!array_key_exists_safe($segment, $array)) { |
|
22 | return value($default); |
|
23 | } |
|
24 | $array = $array[$segment]; |
|
25 | } |
|
26 | return $array; |
|
27 | } |
|
28 | } |
|
29 | ||
30 | if (!function_exists('head')) { |
|
31 | /** |
|
@@ 103-128 (lines=26) @@ | ||
100 | } |
|
101 | } |
|
102 | ||
103 | if (!function_exists('array_get')) { |
|
104 | /** |
|
105 | * Get an item from an array using "dot" notation. |
|
106 | * |
|
107 | * @param array $array |
|
108 | * @param string $key |
|
109 | * @param mixed $default |
|
110 | * @return mixed |
|
111 | */ |
|
112 | function array_get($array, $key, $default = null) |
|
113 | { |
|
114 | if (is_null($key)) { |
|
115 | return $array; |
|
116 | } |
|
117 | if (isset($array[$key])) { |
|
118 | return $array[$key]; |
|
119 | } |
|
120 | foreach (explode('.', $key) as $segment) { |
|
121 | if (!is_array($segment) || !array_key_exists_safe($segment, $array)) { |
|
122 | return value($default); |
|
123 | } |
|
124 | $array = $array[$segment]; |
|
125 | } |
|
126 | return $array; |
|
127 | } |
|
128 | } |
|
129 | ||
130 | if (!function_exists('array_set')) { |
|
131 | /** |