Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static function array_multilevel (&$array, $name, $fn = null, $separator = '.') {
- $name_tree = explode($separator, $name);
- if (count($name_tree) > 1) {
- $name_tree = array_reverse($name_tree);
- $name = array_pop($name_tree);
- $name_tree = array_reverse($name_tree);
- $name_tree = implode($separator, $name_tree);
- if (!isset($array[$name]))
- $array[$name] = [];
- return static::array_multilevel ($array[$name], $name_tree, $fn, $separator);
- } else {
- $value = (isset($array[$name]) ? $array[$name] : null);
- // Functional getter
- if (!is_null($fn) && is_callable($fn)) {
- $result = $fn($value);
- // Setter
- if (!is_null($result))
- $array[$name] = $result;
- }
- return $array[$name];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement