创建动态多维数组

Pat*_*até 5 php arrays

我正在尝试在解析用点分隔的字符串时创建一个数组

$string = "foo.bar.baz";
$value = 5
Run Code Online (Sandbox Code Playgroud)

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

我解析了密钥

$keys = explode(".",$string);
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?

Fel*_*ing 2

你可以做:

$keys = explode(".",$string);
$last = array_pop($keys);

$array = array();
$current = &$array;

foreach($keys as $key) {
    $current[$key] = array();
    $current = &$current[$key];
}

$current[$last] = $value;
Run Code Online (Sandbox Code Playgroud)

演示版

如果这样,您可以轻松地创建一个函数,将字符串和值作为参数传递并返回数组。