laravelのコアファイルより発掘。
function array_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; }
使い方は下記の通り
// $array['user']['name'] にセットしたい場合 array_set($array, 'user.name', 'Value'); // $array['user']['name']['first'] にセットしたい場合 array_set($array, 'user.name.first', 'Value');