PHP - 使用字符串作为键从多维数组中获取对元素的引用

nin*_*nho 6 php arrays multidimensional-array

是否有一种简单的、非评估使用的方法来获取对多维数组元素的引用?密钥应作为字符串传递。

这是一个例子:

getSessionReference('1.4.2', $arrReference);

应该返回一个引用

$_SESSION['1']['4']['2']

所以像这样的电话

$arrReference['foo'] = 'bar';

会将其更改为

$_SESSION['1']['4']['2']['foo'] = 'bar'

有任何想法吗?

提前致谢。

goa*_*oat 7

$arr[5][6][7] = 111;

$cursor =& $arr;
foreach (explode('.', '5.6') as $key) {
    $cursor =& $cursor[$key];
}

var_dump($arr);
var_dump($cursor);
$cursor['foo'] = 5;
var_dump($arr);
var_dump($cursor);
Run Code Online (Sandbox Code Playgroud)

http://codepad.viper-7.com/XUEhMj

或函数形式

function & getSessionRef($keyPath) {
    $cursor =& $_SESSION;
    foreach (explode('.', $keyPath) as $key) {
        $cursor =& $cursor[$key];
    }
    return $cursor;
}

$cursor =& getSessionRef('a.6');
Run Code Online (Sandbox Code Playgroud)

顺便说一句 - 我在该代码中使用了名为引用的 php 功能您可以在其中看到像 之类的&符号=&