php从不同的数组键创建数组(维度/路径)

Mar*_*tin 0 php arrays

我希望标题不是太糟糕.我不是一个英国人,甚至很难在我的脑海里放一个......

我的问题是:

我想从一个字符串构建一个多维数组,如下所示:

$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

dec*_*eze 6

$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)