【发布时间】:2018-10-20 02:43:12
【问题描述】:
我正在尝试学习 PHP 数组并建立一个页面来展示我使用物质设计师制作的 3D 材料。
我已经搜索了互联网,但不知道如何最好地完成我的要求。
我想要实现的功能是在服务器上显示一个目录,其中包含网格系统中文件夹中的所有项目。我已经通过表单上传了我的 3D 材料并解压缩到类别,但不知道如何将数组显示到网格中。
我在服务器上的文件看起来像这样,但类别可能会增加。
我正在使用下面的代码来制作文件夹目录的多个数组。
function listFolderFiles($dir)
{
$fileInfo = scandir($dir);
$allFileLists = [];
foreach ($fileInfo as $folder)
{
if ($folder !== '.' && $folder !== '..')
{
if (is_dir($dir . DIRECTORY_SEPARATOR . $folder) === true)
{
// This is the asset cat folder - ceramic - fabric so on
$allFileLists[$folder] = listFolderFiles($dir . DIRECTORY_SEPARATOR . $folder);
}
else
{
// This is sub folder file like image and asset
$allFileLists[$folder] = $folder;
}
}
}
return $allFileLists;
}//end listFolderFiles()
$dir = listFolderFiles('my_directory');
上面通过“var_dump($dir);”输出以下数组
array(17) {
["Ceramic"]=>
array(0) {
}
["Concrete - Asphalt"]=>
array(0) {
}
["Fabric"]=>
array(3) {
["Terrazzo Generator"]=>
array(2) {
["Preview.jpg"]=>
string(11) "Preview.jpg"
["concrete_terrazzo_generator.sbsar"]=>
string(33) "concrete_terrazzo_generator.sbsar"
}
["White Test"]=>
array(2) {
["image.jpg"]=>
string(9) "image.jpg"
["leather_diamond_quilt_double_stitch.sbsar"]=>
string(41) "leather_diamond_quilt_double_stitch.sbsar"
}
["White Test2"]=>
array(2) {
["image.jpg"]=>
string(9) "image.jpg"
["leather_diamond_quilt_double_stitch.sbsar"]=>
string(41) "leather_diamond_quilt_double_stitch.sbsar"
}
}
["Ground"]=>
array(0) {
}
["Leather"]=>
array(0) {
}
["Marble - Granite"]=>
array(0) {
}
["Metal"]=>
array(0) {
}
["Organic"]=>
array(0) {
}
["Paint"]=>
array(0) {
}
["Paper"]=>
array(0) {
}
["Plaster"]=>
array(0) {
}
["Plastic - Rubber"]=>
array(0) {
}
["Signature"]=>
array(0) {
}
["Stone"]=>
array(0) {
}
["Terracotta"]=>
array(0) {
}
["Translucent"]=>
array(0) {
}
["Wood"]=>
array(1) {
["European Ash"]=>
array(1) {
["wood_european_ash.sbsar"]=>
string(23) "wood_european_ash.sbsar"
}
}
}
现在我想做的是在网格系统中显示结果以显示文件夹和类别中的图像。我有信心创建网格系统来显示内容,但我无法遍历多数组来创建网格系统。我需要确保类别中的任何空文件夹都不会显示在网格中,并且只显示里面的子文件夹。
由于上面的数组输出 [wood] & [fabric] 包含子文件夹。排序无关紧要,因为我将使用 jQuery 在页面上进行搜索或过滤。
网格系统
我可能做错了,但这是我目前能想到的唯一方法。
您能给我的任何帮助以使我能够过滤阵列系统将不胜感激!
谢谢
【问题讨论】:
-
给出你预期输出的样本
标签: php arrays sorting directory