function array_set($arr_def, &$res_array, $value) { if ($size = sizeof($arr_def)) { $key = array_shift($arr_def); if ($size > 1) { if (!isset($res_array[$key])) { $res_array[$key] = array(); } complex_array::array_set($arr_def, $res_array[$key], $value); } elseif ($size == 1) { $res_array[$key] = $value; } } }