【发布时间】:2022-01-16 00:54:40
【问题描述】:
如果我有以下数组:
[
'foo',
'bar',
'baz'
]
如何使用 PHP 动态获取此输出:
[
'foo' => [
'bar' => [
'baz' => []
]
]
]
编辑
我最终通过向后构建数组并跟踪最后一个键来实现它,但我会对更简洁的递归方法感兴趣:
$arr = ['foo', 'bar', 'baz'];
$new_arr = [];
$last_key = null;
foreach ( array_reverse( $arr ) as $item ) {
if ( $last_key ) {
$new_arr[ $item ] = $new_arr;
unset( $new_arr[ $last_key ] );
$last_key = $item;
} else {
$new_arr[ $item ] = [];
$last_key = $item;
}
}
【问题讨论】:
-
使用递归是实现这一目标的方法之一。你做了什么来达到你的结果吗?这种没有任何尝试的问题往往会引起社区的负面反应
-
也可以加入你的数组并使用 json_decode 3v4l.org/u3WS0
标签: php arrays associative-array