2016-07-02 26 views
0

Guzzleを使用するAPIにフックしています。 APIは私に必要な値を含む有効なJSONオブジェクトを私に提供します。私は、応答内に配置された値の配列を取得するために、いくつかの方法を試してみましたが、この時点でのみ行の番号を経由して、要求ごとに1を取得することができます: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値を1つだけ(番号を介して)受け取っているので、次のようになります。

"" 

私はエラーが表示さreturn dd($unique->ean);を使用して、それを呼び出すようにしてみてください。

Laravel response

私は何をする必要があるかBasciallyは、すべての行だけでなく、1を取得しています。だから要求は(例の目的のために)return dd($unique[all]->ean);のようなものになるだろうが、私はこれにどのようにアプローチするのか分からない?

ご協力いただければ幸いです。ここで

だけdd($unique);を使用して、私の応答です:

json

答えて

0

あなたは正確にしたいどのような結果を得るのですか?

"reduce"を使用すると、コレクションから単一の値を取得できます。

それとも、あなただけの 『マップ』とすべての行に対してのみEANを返す使用し、「EAN」さんのリストを取得したい場合:

$eans = $unique->map(function($item){ 
    return $item->ean; 
}) 

」があるように思えません。抽出物」の方法が、これも動作するはずです:ここでは、参考のため

$eans = $unique->keyBy('ean')->keys(); 

すべてのコレクションのメソッドです:

https://laravel.com/docs/5.2/collections#method-keyby

+0

あなたは私を一日中作りました!ありがとうございました。 – panoply

関連する問題