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

php从不同的数组键创建数组(维度/路径),php,arrays,Php,Arrays,我希望标题不是太糟糕。我不是英国人,这甚至很难用一句话来形容我的母亲 我的问题如下: 我想从字符串中构建一个多维数组,如下所示: $string = "a-b-c"; $val = "something"; $array['a']['b']['c'] = $val; 我尝试了我的一些想法,结果是大脑被炸了。。。 希望你能帮助我!谢谢 编辑 我的做法: function recursion($c, $p, $v) { if (gettype($c) !== "array")

我希望标题不是太糟糕。我不是英国人,这甚至很难用一句话来形容我的母亲

我的问题如下:

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

$string = "a-b-c";
$val = "something";

$array['a']['b']['c'] = $val;
我尝试了我的一些想法,结果是大脑被炸了。。。 希望你能帮助我!谢谢

编辑 我的做法:

 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);
        }
    }
函数递归($c,$p,$v){ if(gettype($c)!=“array”)$c=array(); $c[$p]=$v; 返回$c; } foreach($conf作为$confLine){ $params=preg_split('/-/',$confLine->getParam());//这里是“a-b-c” $val=$confLine->getValue();//值 对于($i=0;$i 重要 我不知道刺要多长时间。如果是a-b或a-b-c-d-e-f

$string = "a-b-c";
$val    = "something";

foreach (array_reverse(explode('-', $string)) as $key) {
    $val = array($key => $val);
}


请发表您尝试过的想法。
explode()
on-将是一个开始如果您不介意我问,为什么需要这样做?看标题,您是在暗示$string实际上是一个数组,还是一个如图所示的字符串?我同意@SamV。你为什么要这么做?这看起来像是一个架构不好的脚本。也许你能解释一下a-b-c-d字符串是从哪里来的?也许构建字符串源代码数组更容易?请发表您的想法。
explode()
on-将是一个开始如果您不介意我问,为什么需要这样做?查看标题,您是在暗示$string实际上是一个数组,还是如图所示是一个字符串?我同意@SamV。你为什么要这么做?这看起来像是一个架构不好的脚本。也许你能解释一下a-b-c-d字符串是从哪里来的?也许构建字符串“source”的数组更容易些?很好。这比乍一看要复杂一点。你比我快了一分钟很好的函数()我一直在寻找这样的函数。我希望它能适合我的计划!不错。这比乍一看要复杂一点。你比我快了一分钟很好的函数()我一直在寻找这样的函数。我希望它能适合我的计划!
$array = array_reduce(
    array_reverse(explode('-', $string)),
    function ($val, $key) { return array($key => $val); },
    $val
);