代码之家  ›  专栏  ›  技术社区  ›  Alexander

将使用Google Drive NextPageToken创建的阵列合并为单个阵列

  •  0
  • Alexander  · 技术社区  · 2 年前

    我有下面的代码从Google Drive下载文件,文件的数量由nextPageToken决定,如下代码所示。

    代码将继续向$files数组添加数组,直到nextPageToken为null。在这一点上,我有一个未知数量的子数组,我想将其合并到一个单独的数组中,而不需要遍历所有返回的数组——有没有一种简单的PHP方法可以做到这一点?

    因此,在下面的代码中,我希望$files[]是一个单独的数组。例如:

    $result = array_merge($files); 只是产生相同的结果

    ```
      $nextPageToken = "empty" ;
      while ( $nextPageToken != null) {
        $responseFiles = $drive->ListFiles( $optParams);
        $nextPageToken = $responseFiles->getNextPageToken();
        $files[]  = $responseFiles->getFiles();
        $optParams = array(
            'fields' => "nextPageToken, files(contentHints/thumbnail,fileExtension,iconLink,id,name,size,thumbnailLink,webContentLink,webView Link,mimeType,parents)",
            'q' => "'".$match[0]."' in parents",
            'pageToken' => $nextPageToken,
            'orderBy' => 'modifiedTime desc, name'
            );
    
       
      }
    ```
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   NicholasJohn16    2 年前

    创建一个空 $files 数组,然后合并并返回每个循环,如下所示。

    $files = [];
    $nextPageToken = "empty";
    
    $optParams = array(
        'fields' => "nextPageToken, files(contentHints/thumbnail,fileExtension,iconLink,id,name,size,thumbnailLink,webContentLink,webView Link,mimeType,parents)",
        'pageToken' => $nextPageToken,
        'orderBy' => 'modifiedTime desc, name'
    );
    
    while ( $nextPageToken != null) {
      $responseFiles = $drive->ListFiles($optParams);
      $nextPageToken = $responseFiles->getNextPageToken();
      $files = array_merge($files, $responseFiles->getFiles());
      $optParams['q'] => "'".$match[0]."' in parents";
    }
    

    查看的api文档 array_merge 了解更多信息。

    推荐文章