如何合并批量查询的结果集?

How to combine result sets from batch queries?

quickbooks API 任何 SQL 查询只有 returns 1000 条,所以我需要分批查询。我的问题是,如何将 php 中的结果加在一起?

$customers = [];
$start_position = 1;
for ($i = 1; $i <= $number_of_queries; $i++) {
    $customers[$i] = $customer_service->query(
        $this->qb->context,
        $this->qb->realm,
        "SELECT * FROM Customer STARTPOSITION " . $start_position . " MAXRESULTS 1000"
    );
    $start_position += 1000;
}

return json_encode($customers);

问题:如何将 $customers[1]$customers[2]$customers[3] 等组合成一个包含所有客户数据的数组?

或者,如果做这个客户端会更好,如何在JavaScript中完成?

我调查了 array_merge and array operators 但如果密钥相同,这些解决方案会覆盖。

此外,我在 JavaScript 中调查了 concat。但是,我无法让它工作。

有没有人有合并批量查询结果集的经验?

您可以尝试使用 PHP 的 array_merge() 功能。

$customers = [];
$start_position = 1;
for ($i = 1; $i <= $number_of_queries; $i++) {
    $results = $customer_service->query(
        $this->qb->context,
        $this->qb->realm,
        "SELECT * FROM Customer STARTPOSITION " . $start_position . " MAXRESULTS 1000"
    );
    $start_position += 1000;
    $customers = array_merge($customers, results);
}

return json_encode($customers);