PHP无限极数组如何映射成文件夹结构?

php无限极数组如何映射成文件夹结构?

使用 php 将无限极数组映射成文件夹

在处理配置文件时,经常需要将嵌套的数组映射成文件和目录结构。例如,给定以下配置文件:

$config = [    'uuid'=>'string',    'info'=>'string',    'main'=>[        'uuid'=>'string',        'cmd'=>'string',        'child'=>[            'uuid'=>'string',            'remark'=>'string',            'game'=>[                'user'=>'name',                'money'=>'1000'            ]        ],        'logs'=>[            'path'=>'/path/path',            'date'=>'2023-09-01'                ]    ],    'video'=>[        'uuid'=>'vid',        'info'=>'info',        'file'=>[            'size'=>'12900'        ]    ]];

需要将其映射成如下目录结构:

mainmain/childmain/child/gamemain/logsvideovideo/file

为了解决这个问题,可以使用如下的 php 代码将无限极数组映射成文件夹:

立即学习“PHP免费学习笔记(深入)”;

function flatten($nodes, $prefix = '') {    $list = [];    foreach ($nodes as $key => $value) {        if (is_array($value)) {            $path = $prefix . $key;            $list[] = $path;            $list = array_merge($list, flatten($value, $path . '/'));        }    }    return $list;}$list = flatten($config);

或者使用 recursiveiteratoriterator:

$list = [];$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($config), RecursiveIteratorIterator::SELF_FIRST);foreach ($iterator as $key => $value) {    if (is_array($value)) {        $path = '';        foreach (range(0, $iterator->getDepth()) as $depth) {            $path .= $iterator->getSubIterator($depth)->key() . '/';        }        $list[] = rtrim($path, '/');    }}

以上就是PHP无限极数组如何映射成文件夹结构?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1251574.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月9日 23:15:38
下一篇 2025年12月9日 23:15:50

相关推荐

发表回复

登录后才能评论
关注微信