| @@ 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. |
|