Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]file_get_contents, poziom zagłębienia zmiennej w API
Forum PHP.pl > Forum > Przedszkole
Repthile
Mój poziom - przedszkolak 1 klasa nerdsmiley.png

Wykorzystuje dane z API, problem zaczyna się dla mnie, gdy zmienna znajduje się głęboko i nie wiem jak ją wywołać.

Jeżeli odpoweidź API wygląda tak:
  1. {
  2. "status": "ok",
  3. "count": 1,
  4. "meta": {
  5. "count": 1
  6. },
  7. "data": {
  8. "001": {
  9. "points": 100
  10. }
  11. }


Kod, który działa:
  1. $url = 'http://api.url';
  2. $obj = json_decode(file_get_contents($url));
  3. echo $obj->data->{'001'}->points;



Jżeli API jest bardziej rozbudowane i pojawiają się kwadratowe nawiasy [ ] nie wiem jak wywołać dane w nich zawarte:
  1. {
  2. "status": "ok",
  3. "count": 1,
  4. "meta": {
  5. "count": 1
  6. },
  7. "data": {
  8. "001": {
  9. "place": [
  10. {
  11. "place_name": "name_1",
  12. "map": "map1",
  13. "attacked": false,
  14. "prime_time": 1430071203,
  15. "revenue": 120,
  16. "occupancy_time": 18,
  17. },
  18. {
  19. "place_name": "name_2",
  20. "map": "map2",
  21. "attacked": false,
  22. "prime_time": 1430071203,
  23. "revenue": 1200,
  24. "occupancy_time": 2,
  25. },
  26. {
  27. "place_name": "name_3",
  28. "map": "map3",
  29. "attacked": false,
  30. "prime_time": 1430071203,
  31. "revenue": 240,
  32. "occupancy_time": 1,
  33.  
  34. ]
  35. }
  36. }
  37. }


Chciałbym uzyskać przykładowo wszystkie place_name, albo map.
Gdy odwołuję się do samego echo $obj->data->{'001'}->place;
Otrzymuje błąd:
Array to string conversion

Próbowałem różnych dziwnych kombinacji, bez skutku.
Próbowałem znaleźć na to odpowiedź, ale nie wiem jak to nazwać i poszukiwania nie przyniosły rezultatu.
slash^
Masz tam tablice obiektów więc coś w stylu:

  1. $obj->data->{'001'}->place[0]->place_name;


gdzie [0] to index

  1. foreach( $obj->data->{'001'}->place as $key => $object {
  2.  
  3. $obj->data->{'001'}->place[ $key ]->place_name;
  4.  
  5. //lub
  6. $object->place_name;
  7. }


pisane z palca smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.