2015-06-12 2 views
0

У меня есть следующие функции:рекурсивная функция, которая добавляет к массиву JSon

function getJsonStuff($page_id, $token = "") 
{ 
    $json = json_decode(file_get_contents("https://www.example.com/id=" . $page_id . "&pageToken=" . $token), true); 

    if (isset($json["token"]) && !empty($json["token"])) 
    { 
     getJsonStuff($playlist_id, $json["token"]); 
    } 
    else 
    { 
     return $json; 
    } 
} 

JSON приведены на странице я их извлечения из возвращает только 20 результатов, но дает маркер постраничной в течение следующих 20 результатов ,

Рекурсивная функция предназначена для прохождения всех результатов JSON до тех пор, пока не будет указан токен следующей страницы.

Как добавить результаты JSON с каждой страницы в одну переменную, чтобы у меня была переменная со всеми результатами?

ответ

0

Вы можете подойти к решению этого с помощью время цикла, а не рекурсии:

function getJsonStuff($page_id) { 
    $url = "https://www.example.com/id=" . $page_id . "&pageToken="; 
    $results = array(); 
    $token = ""; 

    while(true) { 
     $json = json_decode(file_get_contents($url . $token), true); 

     if (!isset($json["token"]) || empty($json["token"])) { 
      break; 
     } 

     $token = $json["token"]; 
     $results[] = $json; 
    } 

    return $results; 
} 
Смежные вопросы