【发布时间】:2021-09-26 15:07:34
【问题描述】:
我配置了当前使用 getAsync 和 4 个 url 承诺的 guzzle。此数据的返回带有 2 个数组,格式如下。
我的问题,我怎样才能分成两个变量,第一个只是第一个数组?在此示例中,它将是大小为 3154 的整个数组,而在另一个变量中,它将是大小为 10297 的整个数组
狂饮
$requests = [
getenv('apiSavingNew'),
getenv('apiSavingOld'),
];
$promises = (function () use ($requests) {
$client = new Client([
'verify' => false
]);
foreach ($requests as $request) {
yield $client->getAsync($request);
}
})();
$eachPromise = new EachPromise($promises, [
'concurrency' => 2,
'fulfilled' => function (Response $response) {
if ($response->getStatusCode() == 200) {
$request = json_decode($response->getBody());
$firstRequest = // first array here
$secondRequest = // second array here
}
},
'rejected' => function (RequestException $e) {
echo $e->getMessage();
}
]);
$eachPromise->promise()->wait();
回报暴食承诺
array (size=3154)
0 =>
object(stdClass)[11532]
public 'id' => string '57a64bb0-1c6a-11ec-bfd3-173b9227de8c' (length=36)
public 'createdAt' => string '2021-09-23T12:32:40.427Z' (length=24)
public 'data' => string '2021-09-22T00:00:00.000Z' (length=24)
public 'dataFim' => string '2021-10-22T00:00:00.000Z' (length=24)
public 'valor' => string '0.30120' (length=7)
public 'serieTemporalId' => string 'a43978f1-7fd4-4550-9907-106474e64ee4' (length=36)
public 'acumuladoAno' => null
public 'acumulado12Meses' => null
1 =>
object(stdClass)[11539]
public 'id' => string '57a49e00-1c6a-11ec-bfd3-173b9227de8c' (length=36)
public 'createdAt' => string '2021-09-23T12:32:40.416Z' (length=24)
public 'data' => string '2021-09-21T00:00:00.000Z' (length=24)
public 'dataFim' => string '2021-10-21T00:00:00.000Z' (length=24)
public 'valor' => string '0.30120' (length=7)
public 'serieTemporalId' => string 'a43978f1-7fd4-4550-9907-106474e64ee4' (length=36)
public 'acumuladoAno' => null
public 'acumulado12Meses' => null
more elements...
array (size=10297)
0 =>
object(stdClass)[11545]
public 'id' => string '54f70a30-1c6a-11ec-bfd3-173b9227de8c' (length=36)
public 'createdAt' => string '2021-09-23T12:32:35.923Z' (length=24)
public 'data' => string '2021-09-22T00:00:00.000Z' (length=24)
public 'dataFim' => string '2021-10-22T00:00:00.000Z' (length=24)
public 'valor' => string '0.50000' (length=7)
public 'serieTemporalId' => string 'ec940ca2-7da8-4a75-ae7b-d90244797b65' (length=36)
public 'acumuladoAno' => null
public 'acumulado12Meses' => null
1 =>
object(stdClass)[11557]
public 'id' => string '54f3fcf0-1c6a-11ec-bfd3-173b9227de8c' (length=36)
public 'createdAt' => string '2021-09-23T12:32:35.903Z' (length=24)
public 'data' => string '2021-09-21T00:00:00.000Z' (length=24)
public 'dataFim' => string '2021-10-21T00:00:00.000Z' (length=24)
public 'valor' => string '0.50000' (length=7)
public 'serieTemporalId' => string 'ec940ca2-7da8-4a75-ae7b-d90244797b65' (length=36)
public 'acumuladoAno' => null
public 'acumulado12Meses' => null
more elements...
【问题讨论】:
-
所以你想要一个包含每个请求的数组?
-
你可以传递第二个变量 $index 并作为键名传递给单独声明的变量
标签: php arrays asynchronous promise guzzle