如何在PHP中合并Google Drive分页返回的多维文件数组?
解决PHP多维数组合并为一维数组的简便方法
你遇到的问题是array_merge($files)无效,原因是array_merge需要接收多个数组作为参数,而你直接传入了一个包含子数组的多维数组,相当于只传了一个参数,自然不会合并内部的子数组。这里有两种无需循环的简便解决方法:
方法一:使用展开运算符(PHP 5.6+)
利用PHP的展开运算符(...),将多维数组中的每个子数组作为独立参数传递给array_merge,一行代码就能完成合并:
$result = array_merge(...$files);
方法二:兼容低版本PHP的array_reduce
如果你的PHP版本低于5.6,可以用array_reduce迭代数组,逐步合并子数组:
$result = array_reduce($files, function($carry, $item) { return array_merge($carry, $item); }, []);
额外优化:循环时直接合并(可选)
如果允许修改原循环逻辑,其实可以在获取文件时直接合并到一维数组里,避免后续处理:
把循环中的$files[] = $responseFiles->getFiles();替换为:
$files = array_merge($files ?? [], $responseFiles->getFiles());
这样循环结束后$files本身就是一维数组,无需额外合并操作。
内容的提问来源于stack exchange,提问作者Alexander
相关产品推荐
相关产品推荐

