сортировка файлов для создания объекта из всех файлов

Я пытаюсь получить все изображения из своих папок в каталоге и сделать их объектом. имена папок — это идентификаторы продуктов, а имена файлов — просто цифры.

у меня есть этот код

            $dir = "./public/img/product/";
$scandir = scandir($dir);
$opendir  = opendir($dir);
$allfiles = new stdClass();

while (false !== ($dirname = readdir($opendir)))
{
if($dirname != "." && $dirname != "..")
{
$allfiles->$dirname = $dirname;

}

}foreach($allfiles as $folder)
{
$dir = "./public/img/product/".$folder;
$opendir  = opendir($dir);
while (false !== ($filename = readdir($opendir)))
{
if($filename != "." && $filename != "..")
{
echo 'folder: '.$folder . ', filname: '.$filename.' ';
}
}
//

}

что делает

 folder: 767, filname: 1.jpg folder: 767, filname: 2.jpg folder: 767, filname: 3.jpg folder: 768, filname: 1.jpg folder: 768, filname: 2.jpg folder: 769, filname: 1.jpg folder: 769, filname: 2.jpg folder: 769, filname: 3.jpg folder: 769..

я хочу что-то подобное, я думаю ..

{files:{767:[ 1.jpg, 2.jpg ],768:[ 1.jpg, 2.jpg ]}}

благодарю вас.

0

Решение

Вот решение

        $dir = "./public/img/product/";
$scandir = scandir($dir);
$opendir  = opendir($dir);
$allfiles = new stdClass();
$files = array();

while (false !== ($dirname = readdir($opendir)))
{
if($dirname != "." && $dirname != "..")
{
$allfiles->$dirname = $dirname;

}

}foreach($allfiles as $folder)
{
$dir = "./public/img/product/".$folder;
$opendir  = opendir($dir);
while (false !== ($filename = readdir($opendir)))
{
if($filename != "." && $filename != "..")
{
$files[$folder][] = $filename;
}
}

}

ksort($files);
foreach($files as $index => $folder){
$files[$index] = sort($folder);
}

echo json_encode($files);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]