$val) { if (count($keys) == 1) { $array[$val] = $value; return; } else { array_shift($keys); if (!is_array($array[$val])) { $array[$val] = array(); } $a = &$array[$val]; assign_to_array($a, $keys, &$value); } } } $array = array(1, 2, 3); $keys = array('a', 'b', 'c'); assign_to_array($array, $keys, 'someValue'); var_dump($array); ?>