为了账号安全,请及时绑定邮箱和手机立即绑定

动态添加维度到 PHP 数组

动态添加维度到 PHP 数组

PHP
互换的青春 2021-08-27 09:32:33
在发布这个问题之前,我想了很多。这个问题比其他任何问题都更具概念性。从经典数组开始,我想将其动态转换为带有子树的多维度。要清楚,从这里:$array = ['my', 'unique', 'values', 'array', 'and', 'so', 'on', '...'];对此:Array(     ['my'] =>         ['unique'] =>             ['values'] =>                 ['array'] =>                     ['and'] =>                         ['so'] =>                             ['on']=>                                 ['...'] => [])我所做的唯一尝试是“野蛮地”动态创建字符串并通过eval()命令传递它们。我在这里写代码不是为了个人尊严。我承认这件事已经够糟糕了。内行人会明白...我完全相信有正确的方法可以做到,但当然,如果我在这里,我不知道最好的事物
查看完整描述

3 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

从头开始,以头结束:


$length = sizeof($array);

$value = [];

for ($index = $length - 1; $index >= 0; $index--) {

    $value = [

        "{$array[$index]}" => $value

    ];

    unset($array[$index]);

}

$array[]=$value;


查看完整回答
反对 回复 2021-08-27
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

这使用引用来跟踪您当前正在向哪个元素添加数据,因此首先$add是根元素(通过将其设置为&$newArray)。每次添加一个新级别时,它都会将引用移动到这个新项目(使用&$add[$key])并重复该过程......


$array = ['my', 'unique', 'values', 'array', 'and', 'so', 'on', '...'];

$newArray = [];

$add = &$newArray;

foreach ( $array as $key )  {

    $add[$key] = [];

    $add = &$add[$key];

}

print_r($newArray);


查看完整回答
反对 回复 2021-08-27
  • 3 回答
  • 0 关注
  • 217 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信