【发布时间】:2011-11-08 19:13:55
【问题描述】:
编辑
我知道我是这里的新海报,但我对 StackOverflow 并不陌生。正如我在下面看到的那样,我从未见过人们对问题提出全新的解决方案。我提供了输入、输出和预期输出。接受的答案将在这些准则范围内起作用。
我正在尝试编写一个如下所述的数组写入函数
// existing array
$config = array("preserve" => "please");
function set($key, $value){
global $config;
if(count($keys = explode(':', $key)) > 1){
$key = array_shift($keys);
while($k = array_pop($keys)){
$value = array($k => $value);
}
}
return $config[$key] = $value;
}
// set
set("foo", "bar");
set("pokemon:trainer", "ashk");
set("pokemon:favorite", "diglett"); // overwrites pokemon:trainer :(
print_r($config);
输出
Array
(
[preserve] => please
[foo] => bar
[pokemon] => Array
(
[favorite] => diglett
)
)
哦不!宝可梦训练师是谁? Ash Ketchum 被遗忘了!
我明白它为什么会中断,但我不知道应该如何编写这个函数。我感觉到需要递归,但我不确定如何实现它:\
输出应该是
Array
(
[preserve] => please
[foo] => bar
[pokemon] => Array
(
[trainer] => ashk
[favorite] => diglett
)
)
【问题讨论】:
-
我没有看到描述。这段代码应该做什么?也就是说,输入是什么,输出应该是什么?
-
@JimMischel 抱歉,我添加了预期的输出。
-
我不记得 Ash 曾经训练过 Diglett。
标签: php arrays algorithm recursion