偏移长度未知的数组

时间:2019-01-07 14:42:18

标签: php-5.6

我从另一个构建一个数组。 我有键和值,但是我不知道我的新数组可以有多深

我正在使用eval函数,但SONAR拒绝了它。所以我必须找到其他方法。

$splitpair[0] = array("key1", "key2", "...", "keyN");
$splitpair[1] = "val1";
$returnArray[$splitpair[0]] = $splitpair[1];

我希望我返回的数组是这样的:$returnArray[key1][key2][...][keyN] = "val1";

1 个答案:

答案 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);

`