使用Guzzle我正在使用API。 API将为我提供一个包含我需要的值的有效JSON对象。我已经尝试了几种方法来检索位于响应中的值数组,但此时每个请求只能通过行号得到一个:
这是我目前的代码:
public function index () {
//$value = "07332927917462,07332927917455";
$client = new Client();
$response = $client->get('https://example.com/xxx',
[ 'query' => [
'secret' => '2acbefghijklmnop',
'created' => '2016-01-01']]);
$data = json_decode($response->getBody()->getContents());
$array = $data->products;
$collect = collect($array);
$unique = $collect->unique('ean');
$unique->values()->all();
return dd($unique[0]->ean);
}
在我的return dd($unique[0]->ean);
我只收到一个EAN值(通过号码),所以它看起来像这样;
"012345678910"
当我尝试使用return dd($unique->ean);
调用它时收到错误:
基本上,我需要做的是获取所有行,而不仅仅是一行。所以请求会像(例如)return dd($unique[all]->ean);
那样,但我不确定如何处理这个问题?
非常感谢任何帮助。
以下是仅使用dd($unique);
的回复:
答案 0 :(得分:0)
你到底想要得到什么结果?
您可以使用“reduce”从您的收藏中获取单个值。
或者,如果您只想获得“ean”的列表,请使用“map”并仅返回每行的ean:
$eans = $unique->map(function($item){
return $item->ean;
})
似乎没有“提取”方法,但这也应该有效:
$eans = $unique->keyBy('ean')->keys();
供参考,以下是所有收集方法: