首页 > 解决方案 > 如何在 PHP 中访问不同(未知)长度的嵌套数组

问题描述

我有一个使用不同长度的嵌套数组的系统。例如,我有:

$this->parentArray['level1'][1]['associative_key_1']

$this->parentArray['level1']['associative_key_1'] //no middle index [1]

我正在尝试动态访问这些嵌套数组,但我遇到了麻烦。这就是我正在尝试的:

public function getArray($arrayPath){
    $theArray = explode('.', $arrayPath); //arrayPath is in dot notation coming from JS
    $theTag = "";
    foreach ($theArray as $a) {   
        $theTag .= "['" . $a . "']";
    }
    $theBase = 'parentArray'.$theTag;
    print($this->$theBase);
}

这成功地构造了看起来像我想要的格式的字符串......类似的东西parentArray['level1']['1']['associative_key_1'],如果有一个嵌套较少的数组,它也可以工作。因此,如果我打印$theBase没有问题并且一切看起来都很好。但是如果我尝试在动态变量中使用它并访问类中的属性,例如$this->$theBase它会抛出一个错误,指出找不到该属性。但如果我手动输入数组路径,它确实存在。

如何动态构建/访问长度未知的嵌套数组?

标签: phparrays

解决方案


推荐阅读