具有未知长度数组的偏移量
Offset with an array of unknown length
我从另一个构建一个数组。
我有键和值,但我不知道我的新数组有多深
我正在使用 eval 函数,但 SONAR 拒绝它。所以我得另辟蹊径。
$splitpair[0] = array("key1", "key2", "...", "keyN");
$splitpair[1] = "val1";
$returnArray[$splitpair[0]] = $splitpair[1];
我想要这样的返回数组:$returnArray[key1][key2][...][keyN] = "val1";
您可以遍历索引并移动引用以指向最后一个嵌套数组
`
$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);
`
我从另一个构建一个数组。 我有键和值,但我不知道我的新数组有多深
我正在使用 eval 函数,但 SONAR 拒绝它。所以我得另辟蹊径。
$splitpair[0] = array("key1", "key2", "...", "keyN");
$splitpair[1] = "val1";
$returnArray[$splitpair[0]] = $splitpair[1];
我想要这样的返回数组:$returnArray[key1][key2][...][keyN] = "val1";
您可以遍历索引并移动引用以指向最后一个嵌套数组
`
$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);
`