123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <?php namespace System;
- class Arr {
-
- public static function get($array, $key, $default = null)
- {
- if (is_null($key)) return $array;
- foreach (explode('.', $key) as $segment)
- {
- if ( ! is_array($array) or ! array_key_exists($segment, $array))
- {
- return is_callable($default) ? call_user_func($default) : $default;
- }
- $array = $array[$segment];
- }
- return $array;
- }
-
- public static function set(&$array, $key, $value)
- {
- $keys = explode('.', $key);
- while (count($keys) > 1)
- {
- $key = array_shift($keys);
- if ( ! isset($array[$key]) or ! is_array($array[$key]))
- {
- $array[$key] = array();
- }
- $array =& $array[$key];
- }
- $array[array_shift($keys)] = $value;
- }
- }
|