我正在使用yelp API来为我的网站提取随机附近的列表。来自yelp网站上的文档:
rating number Rating for this business (value ranges from 1, 1.5, ... 4.5, 5)
rating_img_url string URL to star rating image for this business (size = 84x17)
rating_img_url_small string URL to small version of rating image for this business (size = 50x10)
rating_img_url_large string URL to large version of rating image for this business (size = 166x30)
snippet_text string Snippet text associated with this business
snippet_image_url string URL of snippet image associated with this business
location dict Location data for this business
location.address list Address for this business. Only includes address fields.
location.display_address list Address for this business formatted for display. Includes all address fields, cross streets and city, state_code, etc.
location.city string City for this business
location.state_code string ISO 3166-2 state code for this business
location.postal_code string Postal code for this business
location.country_code string ISO 3166-1 country code for this business
location.cross_streets string Cross streets for this business
如何输出位置变量,例如location.display_address等?我的代码通过回显“$ response-> BUSINESS-> rating”正确输出字符串和数字。但是,我的代码的最后一行不起作用。
// Handle Yelp response data
$response = json_decode($data);
$business = $response->businesses;
$numbers = range(0, 19);
shuffle($numbers);
echo "<img src='".$business[$numbers[$ran]]->image_url."'><br/>";
echo $business[$numbers[$ran]]->name."<br/>";
echo "<img border=0 src='".$business[$numbers[$ran]]->rating_img_url_large."'><br/>";
echo "<br/>";
echo $business[$numbers[$ran]]->location[display_address]."<br/>";
我得到的错误是
“致命错误:不能在第51行的/home/content/38/11397138/html/yelpcall.php中使用stdClass类型的对象作为数组”
编辑: var dump返回:
object(stdClass)#14 (6) { ["city"]=> string(11) "Chino Hills" ["display_address"]=> array(2) { [0]=> string(14) "2923 Chino Ave" [1]=> string(21) "Chino Hills, CA 91709" } ["postal_code"]=> string(5) "91709" ["country_code"]=> string(2) "US" ["address"]=> array(1) { [0]=> string(14) "2923 Chino Ave" } ["state_code"]=> string(2) "CA" }
答案 0 :(得分:0)
尝试var_dump($business[$numbers[$ran]]->location);
这会告诉您有关您正在使用的变量的更多信息,并帮助您公开其属性。
在您的情况下,看起来location属性是StdClass类型。因此,访问属性如下:$business[$numbers[$ran]]->location->display_address
编辑:感谢您的更新。 StdClass的display_address属性是一个数字索引数组,因此要访问数组元素,您可以这样做:
$business[$numbers[$ran]]->location->display_address[0]
但看起来它的用途更像是这样:
$address = $business[$numbers[$ran]]->location->display_address;
foreach( $address as $line ){
echo $line.'<br />';
}
答案 1 :(得分:0)
尝试echo $ business [$ numbers [$ ran]] - &gt; location [“display_address”]。“
”; (在“display_address”键名称周围添加引号。