按键数组创建嵌套数组

3 php arrays multidimensional-array

我很难通过键数组创建嵌套数组并为最后一个嵌套项分配值.

例如,let $value = 4;和$keys = ['a', 'b', 'c'];

最终结果应该是:

[
  'a' => [
    'b' => [
      'c' => 4
    ]
  ]
]
Run Code Online (Sandbox Code Playgroud)

我尝试过递归,但没有成功.任何帮助将不胜感激.

Gav*_*iel 6

你不需要递归,只需从右到左:

$a = $value;
for ($i = count($keys)-1; $i>=0; $i--) {
  $a = array($keys[$i] => $a);
}
Run Code Online (Sandbox Code Playgroud)

或@felipsmartins的更短版本:

$a = $value;
foreach (array_reverse($keys) as $valueAsKey) $a = [$valueAsKey => $a]; 
Run Code Online (Sandbox Code Playgroud)

  • 非常好!但它可能会像这样"更容易捕捉*":[gist snippet](https://gist.github.com/felipsmartins/b8a5a8f7a8547506c5a7) (2认同)