假设我有一个数组:
$my_arr = ['folder1/', 'file2.png', 'file3.png', 'file4.png', 'file5.png', 'folder2/', 'file1.png', 'file6.png'];我想做一个按文件夹分类的多维数组。因为它不是关联数组,所以我很难找到一种方法将它拆分到文件夹值上,并将文件输入到相同的数组中。
如果这没有意义,我很抱歉,我是PHP新手,到目前为止还没有找到任何关于它的东西。
发布于 2019-07-04 02:44:00
如果我没记错的话,示例数据的一种选择是使用foreach并检查字符串是否以/结尾
如果是,则将其添加为具有空数组的文件夹,并标记当前目录。如果不是,则使用foldername作为键将其添加到当前目录中。
$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);结果
Array
(
[folder1/] => Array
(
[0] => file2.png
[1] => file3.png
[2] => file4.png
[3] => file5.png
)
[folder2/] => Array
(
[0] => file1.png
[1] => file6.png
)
)https://stackoverflow.com/questions/56876041
复制相似问题