Arrays 从Laravel 4中的位置Facebook权限派生城市和州

Arrays 从Laravel 4中的位置Facebook权限派生城市和州,arrays,facebook,laravel,laravel-4,Arrays,Facebook,Laravel,Laravel 4,我试图将城市和州从拉雷维尔Facebook的位置数组对象中分离出来。在我这么做之前,我只是尝试了一些类似于我在Oauth2控制器中尝试的东西: $citystate = $user['location']; $citystate2 = $citystate['name']; $split = explode(", ", $citystate2); $city = $split[0]; $state = $split[1]; 在提供者文件Facebook.php中,我有以下内容: 'locat

我试图将城市和州从拉雷维尔Facebook的位置数组对象中分离出来。在我这么做之前,我只是尝试了一些类似于我在Oauth2控制器中尝试的东西:

$citystate = $user['location'];
$citystate2 = $citystate['name'];
$split = explode(", ", $citystate2);
$city = $split[0];
$state = $split[1]; 
在提供者文件Facebook.php中,我有以下内容:

'location' => $user->location
但是,当我运行此命令时,会出现以下错误:

Use of undefined constant name - assumed 'name'
所以,我的问题是,如何访问location数组对象的名称部分。谢谢你的帮助

首先,如果是类似于

$userArray  = json_decode($user, true);
因此,您可以像使用数组一样使用它

$citystate = $userArray['location'];
您还可以检查$user是否已经是一个数组,或者是否没有使用

if(is_array($user) && array_key_exists('location', $user)) {
    // ...
    $citystate = $user['location'];
    // ...
}
然后你会得到这样一个数组

array (size=2)
 'id' => string 'xxx' (length=15) // xxx = digits
 'name' => string 'Sylhet' (length=6)
更新:$user['location']是一个对象:

object(stdClass)#180 (2) { ["id"]=> string(15) "114952118516947" ["name"]=> string(25) "San Francisco, California" }
因此,它应该是:

$citystate = $user['location'];
$citystate->name;

当我这样做时,我得到了这个错误:json_decode期望参数1是字符串,数组给定如果它已经是一个数组,不需要json_解码,尝试var_dump$user,看看你得到了什么?这是location对象$user['location']:objectstdClass180 2{[id]=>string15 114952118516947[name]的输出=旧金山,加利福尼亚}好吧,我想出来了。我只需要使用location->name箭头属性。@user1072337,很高兴知道:-