我从另一个构建一个数组。 我有键和值,但是我不知道我的新数组可以有多深
我正在使用eval函数,但SONAR拒绝了它。所以我必须找到其他方法。
$splitpair[0] = array("key1", "key2", "...", "keyN");
$splitpair[1] = "val1";
$returnArray[$splitpair[0]] = $splitpair[1];
我希望我返回的数组是这样的:$returnArray[key1][key2][...][keyN] = "val1";
答案 0 :(得分:0)
您可以遍历索引并移动引用以指向最后一个嵌套数组
`
$returnArray = [];
$buffer = &$returnArray;//buffer points to $returnArray
$array = array('key1','key2','key3');
foreach($array as $index){
if(!(isset($buffer[$index])&&is_array($buffer[$index]))){
$buffer[$index]=[]; //if $buffer[$index] is not an array, initialize it
}
$buffer=&$buffer[$index];//buffer points to the last nested array ($returnArray['key1']['key2']....[$index])
}
$buffer='val1';
var_dump($returnArray);
`