Create nested array by array of keys

匿名 (未验证) 提交于 2019-12-03 01:23:02

问题:

I've some difficulties creating a nested array by array of keys and assigning a value for the last nested item.

For example, lets $value = 4; and $keys = ['a', 'b', 'c'];

The final result should be:

[   'a' => [     'b' => [       'c' => 4     ]   ] ]

I've tried with a recursion, but without success. Any help would be greatly appreciated.

回答1:

you don't need recursion, just do it from the right to left:

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

or the even shorter version from @felipsmartins:

$a = $value; foreach (array_reverse($keys) as $valueAsKey) $a = [$valueAsKey => $a]; 


回答2:

Your can try it.

$value = 4; $keys = ['a', 'b', 'c']; $a = $value; $i=count($keys)-1; foreach($keys as $key){     $a = array($keys[$i] => $a);     $i--; } print_r($a);

Output

Array (     [a] => Array         (             [b] => Array                 (                     [c] => 4                 )          )  )


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!