2017-07-05 83 views
2

我正在使用Instagram软件包vinkla将用户数据发送到我的应用程序。Laravel的Instagram API 5.4

这里是我使用以便得到结果的代码:

public function instagram() 
{ 
    $insta = new Instagram(); 

    $getUser = $insta->get('gopro'); 

    dd($getUser); 
} 

当我diedump结果我得到的回报这数组:

array:20 [▼ 
    0 => {#205 ▼ 
    +"id": "1552323772757218591_28902942" 
    +"code": "BWK9j8rlpUf" 
    +"user": {#208 ▶} 
    +"images": {#202 ▼ 
     +"thumbnail": {#203 ▶} 
     +"low_resolution": {#214 ▶} 
     +"standard_resolution": {#204 ▼ 
     +"width": 640 
     +"height": 640 
     +"url": "https://scontent-frt3-1.cdninstagram.com/t51.2885-15/s640x640/sh0.08/e35/19624693_104174916895493_9107740182827761664_n.jpg" 
     } 
    } 
    +"created_time": "1499271435" 
    +"caption": {#207 ▶} 
    +"likes": {#215 ▶} 
    +"comments": {#222 ▶} 
    +"can_view_comments": true 
    +"can_delete_comments": false 
    +"type": "image" 
    +"link": "https://www.instagram.com/p/BWK9j8rlpUf/" 
    +"location": {#223 ▶} 
    +"alt_media_url": null 
    } 
    1 => {#224 ▶} 
    2 => {#251 ▶} 
    3 => {#278 ▶} 

] 

现在的事情,我我正在尝试处理: 我想将一些图像集成到我的laravel应用程序中。基本上我想从每个阵列images->standard_resolution->url获取图像URL。

我已经尝试迭代阵列双foreach到目前为止没有运气。

有关如何实现这一目标的任何建议?

+0

请注明所用的包,并显示您正在使用迭代的代码。 – user2094178

+0

请尝试'$ getUser-> pluck(['images.standard_resolution.url']) - > where('type','image') - > toArray()'。 – user2094178

+0

@ user2094178我得到:调用成员函数pluck()array –

回答

2

使用map从laravel collection只会得到的URL

$data = collect($getUser)->map(function($v) { 
    return $v->images->standard_resolution->url; 
}); 

而且你还可以使用foreach

$urls = []; 
foreach ($getUser as $row) { 
    array_push($urls, $row->images->standard_resolution->url); 
} 

dd($urls); 
+0

在我接受这个答案之前是正确的!有没有办法将数组转换为json? –

+0

是的,请使用[json_encode](http://php.net/manual/en/function.json-encode.php)。并使用json_decode返回对象或数组 – xmhafiz

0

嗨,你可能会得到在数组中的结果,您可以将数组转换成集合有很好的帮手laravel

$yourCollection = collect(yourArray); 

那么你可以申请查询馆藏一样的口才,也适用foreach循环。

编辑2

您可以通过

$yourArray = json_decode($getUser,true); 

做到这一点,你也可以做就可以申请一个循环。

@foreach($yourArray as $arr){ 
    //do what ever you want to do with 
    $arr['standard_resolution']['url']; 
    } 

我希望这会有所帮助。