添加到json数组的递归函数

时间:2015-06-12 17:51:09

标签: php json recursion

我有以下功能:

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结果添加到单个变量中,以便我有一个包含所有结果的变量?

1 个答案:

答案 0 :(得分:0)

您可以使用while循环而不是递归来解决此问题:

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;
}