Pregunta

Déjame estar al frente: soy un truco de PHP. Probablemente hay algunos errores estúpidos aquí. Por favor, apírtalos si los ve.

Lo que estoy tratando de hacer: Estoy creando una página para un restaurante que le gustaría que se muestren sus reseñas de Yelp. Estoy usando la API del teléfono Yelp para obtener las revisiones del negocio específico. Vea la respuesta de muestra en la documentación de la API YELP ubicada aquí: http://www.yelp.com/developers/documentation/phone_api#sampleresponse

Qué he hecho:

  • Conectado con éxito a la API y devolvió una respuesta
  • Valores de eco de la matriz de respuesta en un bucle foreach.

Si ve la documentación, puede ver que hay algunos niveles de la respuesta. Puedo imprimir fácilmente, hacer eco, cualquier valor del segundo nivel, pero lo que realmente busco está anidado en la sección "revisiones" de la respuesta. Tengo problemas para averiguar cómo hacer eco de los valores dentro de la sección de revisiones (por ejemplo, User_Name, Review_Excerpt, etc.).

Mi código:

$yelpstring = file_get_contents("http://api.yelp.com/phone_search?phone=[redactedphonenumber]&ywsid=[redactedapikey]", true);
$obj = json_decode($yelpstring);

foreach($obj->businesses as $key => $business)
{
$reviews = $business->reviews;

//print_r($reviews);
echo $reviews['user_name'];
}

Si hago eco de $ reseñas, solo obtengo la palabra "matriz". Si imprimo_r ($ revisiones), obtengo una lista esperada de claves y valores. Si trato de hacer eco de un valor específico de la matriz (echo $ reseñas ['user_name'], no tengo nada. Cualquier cobertizo de luz sobre lo que estoy haciendo mal sería muy apreciado. Estoy seguro de que me estoy perdiendo algo simple . ¡Gracias por tu tiempo!

Editar: print_r ($ reviews) Salida:

Array ( [0] => stdClass Object ( [rating_img_url_small] => http://media4.px.yelpcdn.com/static/201012164278297776/img/ico/stars/stars_small_2.png [user_photo_url_small] => http://media2.px.yelpcdn.com/static/201012162819681786/img/gfx/blank_user_extra_small.gif [rating_img_url] => http://media4.px.yelpcdn.com/static/201012163489049252/img/ico/stars/stars_2.png [rating] => 2 [user_url] => http://www.yelp.com/user_details?userid=vZbcPrYPSMFIDIfTub5H1g [url] => http://www.yelp.com/biz/jelly-cafe-denver#hrid:u9ckRV6tKApe6Bu93M93CA [mobile_uri] => http://m.yelp.com/biz/5G2X2q9p7QFdm-LbyutltQ?srid=u9ckRV6tKApe6Bu93M93CA [text_excerpt] => I wanted to like this place. It's got the contemporary name and it's full of hipsters. The place looked clean and the style was fun and cute. I felt like... [user_photo_url] => http://media3.px.yelpcdn.com/static/201012161186834854/img/gfx/blank_user_small.gif [date] => 2011-09-07 [user_name] => boycott p. [id] => u9ckRV6tKApe6Bu93M93CA ) [1] => stdClass Object ( [rating_img_url_small] => http://media4.px.yelpcdn.com/static/201012164278297776/img/ico/stars/stars_small_2.png [user_photo_url_small] => http://media1.px.yelpcdn.com/upthumb/MWu84G5QtmBmT9GoqjT_kg/ss [rating_img_url] => http://media4.px.yelpcdn.com/static/201012163489049252/img/ico/stars/stars_2.png [rating] => 2 [user_url] => http://www.yelp.com/user_details?userid=izF2cGrmqt-u_Z2tDZ8dbg [url] => http://www.yelp.com/biz/jelly-cafe-denver#hrid:OYLeeCMgnpZkk1c9LWu97g [mobile_uri] => http://m.yelp.com/biz/5G2X2q9p7QFdm-LbyutltQ?srid=OYLeeCMgnpZkk1c9LWu97g [text_excerpt] => Food is decent and overpriced, but service is a joke. Your food will take a minimum of 20 minutes, for the basic breakfast. Then when your food does come... [user_photo_url] => http://media1.px.yelpcdn.com/upthumb/MWu84G5QtmBmT9GoqjT_kg/ms [date] => 2011-09-06 [user_name] => April H. [id] => OYLeeCMgnpZkk1c9LWu97g ) [2] => stdClass Object ( [rating_img_url_small] => http://media2.px.yelpcdn.com/static/20101216418129184/img/ico/stars/stars_small_4.png [user_photo_url_small] => http://media1.px.yelpcdn.com/upthumb/3euzdGdLZRFxImY68MSg7w/ss [rating_img_url] => http://media2.px.yelpcdn.com/static/201012164084228337/img/ico/stars/stars_4.png [rating] => 4 [user_url] => http://www.yelp.com/user_details?userid=bHR9UU4vtx2QKZD44O0E5g [url] => http://www.yelp.com/biz/jelly-cafe-denver#hrid:njvNAzfSII3PxXyUymLZ1w [mobile_uri] => http://m.yelp.com/biz/5G2X2q9p7QFdm-LbyutltQ?srid=njvNAzfSII3PxXyUymLZ1w [text_excerpt] => Stopped here for breakfast on a friday morning. We were seated immediately and had a really friendly waitress. I ordered a side order of the Chai french... [user_photo_url] => http://media1.px.yelpcdn.com/upthumb/3euzdGdLZRFxImY68MSg7w/ms [date] => 2011-09-05 [user_name] => Diane F. [id] => njvNAzfSII3PxXyUymLZ1w ) ) 
¿Fue útil?

Solución

Basado en la salida de print_r, no puede hacer referencia a $ revisiones ['user_name'];

Tenga en cuenta que $ reviews es una variedad de objetos. Entonces, para acceder a user_name, necesita usar

echo $reviews[0]->user_name;

Y si tiene más de un elemento en la matriz, necesitará un bucle como

for ($i = 0; $i<count($reviews); $i++) {
    echo $reviews[$i]->user_name;
}

Espero que esto ayude.

Otros consejos

$reviews es una variedad de objetos de revisión. Deberá recurrir a él para llegar a los datos que busca.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top