【发布时间】:2021-05-13 23:18:25
【问题描述】:
我使用 DomCrawler 抓取一些数据,我想知道是否可以从闭包中获取数组,这是我的代码:
$promises = $products
->each(function(Crawler $node) use ($client, $cookieJar) {
$href = $node->filter('a')->last()->attr('href');
return [
$href => $client->getAsync($this->config['url'] . $href, [
'cookies' => $cookieJar,
])
];
});
它会像这样返回我:
$promises = [
['href_value' => Guzzle\Promise],
....
];
但我想要:
$promises = [
'href_value' => Guzzle\Promise,
....
];
我怎样才能将返回语句转换成这样的结果,在我的脑海中是这样的:
return ($href) => $client->getAsync($this->config['url'] . $href, [
'cookies' => $cookieJar,
]);
【问题讨论】:
-
嵌套是有原因的,因为它可能返回多个,显然键必须是唯一的。只需使用
reset重新分配它或指向索引零