Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Print_r
Forum PHP.pl > Forum > Przedszkole
ewaslawek5
Dzień Dobry,
Proszę o wyrozumiałość i o pomoc, mam tak:
  1. echo'<pre>';
  2. print_r(json_decode($data));
  3. echo'</pre>';

Powyższy kod wyświetla mi tablicę z obiektami, lub obiekt z tablicami (sam nie wiem - ale chyba to drugie):
  1. stdClass Object
  2. (
  3. [0] => stdClass Object
  4. (
  5. [id] => 1
  6. [name] => Write
  7. [image] => 2016_write.jpg
  8. [banner] => 2016_separadores_topo_write.jpg
  9. [icon] => 2016_write.png
  10. [db_name] =>
  11. )
  12.  
  13. [1] => stdClass Object
  14. (
  15. [id] => 2
  16. [name] => Technology
  17. [image] => 2016_technology.jpg
  18. [banner] => 2016_separadores_topo_technology.jpg
  19. [icon] => 2016_technology.png
  20. [db_name] =>
  21. )
  22.  
  23. [2] => stdClass Object
  24. (
  25. [id] => 3
  26. [name] => Cork
  27. [image] => 2016_cork.jpg
  28. [banner] => 2016_separadores_topo_cork.jpg
  29. [icon] => 2016_cork.png
  30. [db_name] =>
  31. )
  32.  
  33. )


Z obiektami nie miałem do czynienia, mój problem polega na tym, że nie wiem jak wyciągnąć z tej tablicy obiektów dowolnie wybraną wartość, np. dowolne [name], gdyby nie było obiektów, problemu bym nie miał, jestem hobbystą PHP-a i nie wiem jak to ruszyć. Proszę koledzy programiści o poradę lub wskazówkę smile.gif
rad11
  1. $data = json_decode($data);
  2. echo $data[0]->id;
ewaslawek5
Dzięki za odpowiedź, sprawdziłem, wyskoczył błąd:
Fatal error: Cannot use object of type stdClass as array in C:\wamp\www\
sad.gif


W drugiej linijce jest błąd, proszę mi pomóc, jestem w biedzie bardzo dużej ... proszę ,proszę..
Pyton_000
dodaj true do json_decode smile.gif
trueblue
  1. $data = json_decode($data);
  2. echo $data->{0}->id;
ewaslawek5
Dzięki za pomoc, naprowadziliście mnie, problem rozwiązałem.
Za pomocą funkcji:
  1. //zmiana obiektu na tablice
  2. function obj2arr(stdClass $object) {
  3. $array = array();
  4. foreach ($object as $key => $value) {
  5. if ($value instanceof stdClass) {
  6. $array[$key] = obj2arr($value);
  7. } else {
  8. $array[$key] = $value;
  9. }
  10. }
  11.  
  12. return $array;
  13. }

Zamieniłem objekt na tablicę i teraz mogę robić co chcę smile.gif
Dziękuje i pozdrawiam.
Pyton_000
facepalmxd.gif
Tomplus
@ewaslawek5
Przecież podpowiedzieli Ci dużo lepsze rozwiązanie niż tworzenie specjalnych funkcji:

  1. $array = json_decode($JSON, true);
  2. //wartość true, deklaruje że wynik dekodowania będzie zawsze tablicą

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.