我希望标题不是太糟糕.我不是一个英国人,甚至很难在我的脑海里放一个......
我的问题是:
我想从一个字符串构建一个多维数组,如下所示:
$string = "a-b-c";
$val = "something";
$array['a']['b']['c'] = $val;
Run Code Online (Sandbox Code Playgroud)
我尝试了一些我的想法,最后得到了一个油炸的大脑...希望你能帮助我!谢谢!
编辑 我的方法:
function recursion($c, $p, $v) {
if (gettype($c) !== "array") $c = array();
$c[$p] = $v;
return $c;
}
foreach ($conf as $confLine) {
$params = preg_split('/-/', $confLine->getParam()); //Here comes "a-b-c"
$val = $confLine->getValue(); // The value
for ($i = 0; $i < count($params); $i++ ) {
$galleryConfig = recursion($galleryConfig, $params[$i], $val);
}
}
Run Code Online (Sandbox Code Playgroud)
重要 我不知道刺痛会持续多久.如果是ab或abcdef
$string = "a-b-c";
$val = "something";
foreach (array_reverse(explode('-', $string)) as $key) {
$val = array($key => $val);
}
Run Code Online (Sandbox Code Playgroud)
要么
$array = array_reduce(
array_reverse(explode('-', $string)),
function ($val, $key) { return array($key => $val); },
$val
);
Run Code Online (Sandbox Code Playgroud)