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