首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用值将单个数组转换为多维数组?

如何使用值将单个数组转换为多维数组?
EN

Stack Overflow用户
提问于 2019-07-04 02:26:45
回答 1查看 20关注 0票数 1

假设我有一个数组:

代码语言:javascript
复制
$my_arr = ['folder1/', 'file2.png', 'file3.png', 'file4.png', 'file5.png', 'folder2/', 'file1.png', 'file6.png'];

我想做一个按文件夹分类的多维数组。因为它不是关联数组,所以我很难找到一种方法将它拆分到文件夹值上,并将文件输入到相同的数组中。

如果这没有意义,我很抱歉,我是PHP新手,到目前为止还没有找到任何关于它的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-04 02:44:00

如果我没记错的话,示例数据的一种选择是使用foreach并检查字符串是否以/结尾

如果是,则将其添加为具有空数组的文件夹,并标记当前目录。如果不是,则使用foldername作为键将其添加到当前目录中。

代码语言:javascript
复制
$my_arr = ['folder1/', 'file2.png', 'file3.png', 'file4.png', 'file5.png', 'folder2/', 'file1.png', 'file6.png'];
$result = [];    
$folder = '';

foreach ($my_arr as $item) {
    if (substr($item, -1) === '/') {
        $folder = $item;
        $result[$folder] = [];
        continue;
    }
    $folder === '' ? $result[] = $item : $result[$folder][] = $item;
}

print_r($result);

结果

代码语言:javascript
复制
Array
(
    [folder1/] => Array
        (
            [0] => file2.png
            [1] => file3.png
            [2] => file4.png
            [3] => file5.png
        )

    [folder2/] => Array
        (
            [0] => file1.png
            [1] => file6.png
        )

)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56876041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档