@@ 22-46 (lines=25) @@ | ||
19 | * @param array $b array to be merged from |
|
20 | * @return array the merged array |
|
21 | */ |
|
22 | public static function mergeConfig($a, $b) |
|
23 | { |
|
24 | $args = func_get_args(); |
|
25 | $res = array_shift($args); |
|
26 | foreach ($args as $items) { |
|
27 | if (!is_array($items)) { |
|
28 | continue; |
|
29 | } |
|
30 | foreach ($items as $k => $v) { |
|
31 | if (is_int($k)) { |
|
32 | if (isset($res[$k])) { |
|
33 | $res[] = $v; |
|
34 | } else { |
|
35 | $res[$k] = $v; |
|
36 | } |
|
37 | } elseif (is_array($v) && isset($res[$k]) && is_array($res[$k])) { |
|
38 | $res[$k] = self::mergeConfig($res[$k], $v); |
|
39 | } else { |
|
40 | $res[$k] = $v; |
|
41 | } |
|
42 | } |
|
43 | } |
|
44 | ||
45 | return $res; |
|
46 | } |
|
47 | ||
48 | /** |
|
49 | * Dumps closure object to string. |
@@ 185-209 (lines=25) @@ | ||
182 | * @param array $b array to be merged from |
|
183 | * @return array the merged array |
|
184 | */ |
|
185 | public static function mergeConfig($a, $b) |
|
186 | { |
|
187 | $args = func_get_args(); |
|
188 | $res = array_shift($args); |
|
189 | foreach ($args as $items) { |
|
190 | if (!is_array($items)) { |
|
191 | continue; |
|
192 | } |
|
193 | foreach ($items as $k => $v) { |
|
194 | if (is_int($k)) { |
|
195 | if (isset($res[$k])) { |
|
196 | $res[] = $v; |
|
197 | } else { |
|
198 | $res[$k] = $v; |
|
199 | } |
|
200 | } elseif (is_array($v) && isset($res[$k]) && is_array($res[$k])) { |
|
201 | $res[$k] = self::mergeConfig($res[$k], $v); |
|
202 | } else { |
|
203 | $res[$k] = $v; |
|
204 | } |
|
205 | } |
|
206 | } |
|
207 | ||
208 | return $res; |
|
209 | } |
|
210 | ||
211 | /** |
|
212 | * Read extra config. |