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; } /** * Return the first element in an array which passes a given truth test. * * @param array $array * @param Closure $callback * @return mixed */ public static function first($array, $callback, $default = null) { foreach ($array as $key => $value) { if (call_user_func($callback, $key, $value)) return $value; } return ($default instanceof Closure) ? call_user_func($default) : $default; } /** * Remove all array values that are contained within a given array of values. * * @param array $array * @param array $without * @return array */ public static function without($array, $without = array()) { foreach ($array as $key => $value) { if (in_array($value, $without)) unset($array[$key]); } return $array; } }