recherche

Maison  >  Questions et réponses  >  le corps du texte

Fusionner les tableaux créés à l'aide de Google Drive NextPageToken en un seul tableau

<p>J'ai le code suivant pour télécharger des fichiers depuis Google Drive, le nombre de fichiers est déterminé par nextPageToken, comme indiqué ci-dessous. </p> <p>Le code continuera à ajouter des tableaux au tableau $files jusqu'à ce que nextPageToken soit nul. À ce stade, j'ai un nombre inconnu de sous-tableaux et je souhaite les fusionner en un seul tableau sans parcourir tous les tableaux renvoyés. Existe-t-il un moyen simple d'y parvenir en utilisant PHP ? </p> <p>Donc, dans le code ci-dessous, je veux que $files[] soit un seul tableau. Par exemple : </p> <p><code>$result = array_merge($files); </code>ne produira que le même résultat</p> <pre class="brush:php;toolbar:false;">``` $nextPageToken = "vide" ; while ( $nextPageToken != null) { $responseFiles = $drive->ListFiles( $optParams); $nextPageToken = $responseFiles->getNextPageToken(); $files[] = $responseFiles->getFiles(); $optParams = tableau( 'fields' => "nextPageToken, fichiers (contentHints/thumbnail,fileExtension,iconLink,id,name,size,thumbnailLink,webContentLink,webView Link,mimeType,parents)", 'q' => "'".$match[0]."' chez les parents", 'pageToken' => $nextPageToken, 'orderBy' => 'modifiedTime desc, nom' ); } ```</pre></p>
P粉872101673P粉872101673517 Il y a quelques jours600

répondre à tous(1)je répondrai

  • P粉805931281

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

    Créez un tableau $files vide avant de boucler, puis fusionnez et revenez dans chaque boucle comme ci-dessous.

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

    Voir la documentation de l'API pour array_merge pour plus d'informations.

    répondre
    0
  • Annulerrépondre