Fusionner les tableaux créés à l'aide de Google Drive NextPageToken en un seul tableau
P粉872101673
P粉872101673 2023-08-13 20:28:17
0
1
586
<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粉872101673
P粉872101673

répondre à tous(1)
P粉805931281

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal