1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?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)
- {
- if (is_null($key)) return $array = $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;
- }
- }
|