За последние 24 часа нас посетили 21994 программиста и 989 роботов. Сейчас ищут 714 программистов ...

JSON из PHP скрипта

Тема в разделе "PHP для новичков", создана пользователем kolhoz, 15 дек 2018.

  1. kolhoz

    kolhoz Активный пользователь

    С нами с:
    7 ноя 2016
    Сообщения:
    31
    Симпатии:
    0
    Привет, есть папка site_music в которой папки, а в папках аудио файлы. Есть скрипт, который возвращает в json виде список папок и файлов. Но проблема в том, что в итоговом json я в ответ получаю только одну запись, а остальные записи не попадают в json. Как правильно отобрать все данные в json?

    PHP:
    1. <?php
    2.  
    3. $mp3_arr = array();
    4. $dirs = glob($somePath . 'site_music/*' , GLOB_ONLYDIR);
    5.  
    6. $id = 1;
    7. foreach($dirs as $dir){
    8.  
    9.     $results_array = array();
    10.  
    11.     if (is_dir($dir))
    12.     {
    13.         if ($handle = opendir($dir))
    14.         {
    15.             while(($file = readdir($handle)) != false)
    16.             {
    17.                 $mp3_arr['audio']["id"] = $id;
    18.                 $mp3_arr['audio']["Папка"] = $dir;
    19.                 $mp3_arr['audio']["Аудио"] = $file;
    20.                 $mp3_arr['audio']["url"] = "https://site.ru/".$dir."/".$file;
    21.  
    22.                 $id++;
    23.             }
    24.             closedir($handle);
    25.         }
    26.     }
    27. }
    28.  
    29. $mp3_json = json_encode($mp3_arr);
    30. print_r($mp3_json);
    31.  
    32. ?>
     
  2. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    @kolhoz, как-то так:
    PHP:
    1. // ****
    2. $arr = [];
    3. $arr["id"] = $id;
    4. $arr["folder"] = $dir;
    5. $arr["audiofile"] = $file;
    6. $arr["url"] = "https://site.ru/".$dir."/".$file;
    7. $mp3_arr[] = $arr;
    8. // ****