合并使用Google Drive NextPageToken创建的数组为一个数组
P粉872101673
P粉872101673 2023-08-13 20:28:17
[PHP讨论组]
<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 = &quot;empty&quot; ; while ( $nextPageToken != null) { $responseFiles = $drive-&gt;ListFiles( $optParams); $nextPageToken = $responseFiles-&gt;getNextPageToken(); $files[] = $responseFiles-&gt;getFiles(); $optParams = array( 'fields' =&gt; &quot;nextPageToken, files(contentHints/thumbnail,fileExtension,iconLink,id,name,size,thumbnailLink,webContentLink,webView Link,mimeType,parents)&quot;, 'q' =&gt; &quot;'&quot;.$match[0].&quot;' in parents&quot;, 'pageToken' =&gt; $nextPageToken, 'orderBy' =&gt; 'modifiedTime desc, name' ); } ```</pre></p>
P粉872101673
P粉872101673

全部回复(1)
P粉805931281

在循环之前创建一个空的$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文档获取更多信息。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号