Intereting Posts

Как я мог реорганизовать json-массивы и дать ключевую строку каждому ключу, выстраивая их в массивы в массиве через php?

в настоящее время я использую три отдельных php-функции для массива:

  1. имена папок
  2. миниатюра под папкой
  3. текстовый файл под папкой

в три разделенных json-файла, так что теперь они:

["folder1","folder2","folder3"] ["folder1/thumb.svg","folder2/thumb.svg","folder3/thumb.svg"] ["blah blah blah","blah blah blah","blah blah blah"] 

Это отлично работает для меня, но было бы намного проще, если бы я мог сделать их в один файл json, выглядит так:

 [ { "name" : "folder1", "thumbnail" : "folder1/thumb.svg", "text": "blah blah blah" }, { "name" : "folder2", "thumbnail" : "folder2/thumb.svg", "text": "blah blah blah" }, { "name" : "folder3", "thumbnail" : "folder3/thumb.svg", "text": "blah blah blah" }, ] 

Есть ли способ сделать это? Благодарю.

Объясни подробней:

Например, я попробовал array("name" => array_map("basename", glob('./folders/*', GLOB_ONLYDIR)),) и он просто поместил все мои папки в виде гигантского массива под одной записью «name» , "like this {"name":["folder1","folder2","folder3"]} .

Псевдорешение:

IkoTikashi предоставил решение, хотя и не обязательно, отвечая на вопрос, но может быть полезным для некоторых людей. Я использую его идею, чтобы установить некоторые примеры кодов ниже:

 <?php $checkfolder = './path/examples/folders'; $json = []; foreach ( glob($checkfolder . '*', GLOB_ONLYDIR) as $folder) { $filename = $folder . "/description.txt"; if (file_exists($filename)) { $handle = fopen($filename, "r"); $contents = fread($handle, filesize($filename)); fclose($handle); } else { $contents = ''; } $json[] = [ 'name' => str_replace($checkfolder, '', $folder), 'thumb' => $folder . '/thumb.svg', 'text' => $contents ]; } json_encode($json); ?> 

Конечно, это решение не идеально. Для одного он не предоставляет полезный URL-адрес для эскизов. И что еще более важно, он стирает модульность исходных кодов – пользователи могут использовать три отдельных api для генерации конкретного json для их нужд. Причина реорганизации существующих json-файлов заключается в том, что они могут иметь дополнительную возможность генерировать комбинированные массивы. Это решение, скорее, создало совершенно новую функцию для достижения такой цели – так что, хотя это временное решение, ему не хватает возможности обновления.