搜尋

首頁  >  問答  >  主體

合併使用Google Drive NextPageToken所建立的陣列為一個陣列

<p>我有以下程式碼,用於從Google Drive下載文件,文件數量由nextPageToken確定,如下所示的程式碼。 </p> <p>程式碼將繼續將陣列加入$files陣列中,直到nextPageToken為null。此時,我有一個未知數量的子數組,我希望將它們合併成一個單獨的數組,而無需循環遍歷所有返回的數組 - 有沒有一種簡單的方法可以使用PHP實現這個目標? </p> <p>所以,在下面的程式碼中,我希望$files[]是一個單一的陣列。例如:</p> <p><code>$result = array_merge($files); </code>只會產生相同的結果</p> <pre class="brush:php;toolbar:false;">``` $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' ); } ```</pre></p>
P粉872101673P粉872101673467 天前550

全部回覆(1)我來回復

  • P粉805931281

    P粉8059312812023-08-14 16:48:10

    在循環之前建立一個空的$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";
    }
    

    查看array_merge的API文件以取得更多資訊。

    回覆
    0
  • 取消回覆