Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JSON] Odczytanie z gałęzi JSON stringa
Forum PHP.pl > Forum > PHP
darkkamil
Witam, rozmyślam jak odczytać zmienna stringową z poziomu PHP odkodowanego JSON'a. Dla lepszego zrozumienia podam przykładowy kod:

Rozkodowany JSON
  1. [dane] => Array(
  2. [zmienna_nazwa] => Array ()
  3. [zmienna_nazwa] => Array ()
  4. )

Problem polega na tym, że [zmienna_nazwa] jest to string o zmiennej nazwie i nie mogę podać nazwy. Gdyby były to cyfry użył bym foreach'a i po problemie, lecz tutaj nie są liczby, a nieokreślony ciąg znaków. Liczę na Wasza pomoc z tym problemem wink.gif
nospor
Cytat
Gdyby były to cyfry użył bym foreach'a i po problemie, lecz tutaj nie są liczby, a nieokreślony ciąg znaków.
A od kiedy FOREACH wymaga liczb do dzialania?? FOREACH dziala rownie dobrze na indexach tekstowych.
darkkamil
No dobra, jak mam liczby używam takiego kodu:
  1. foreach($array $key=> $value)
  2. echo $array[$key]; #(linia 167)

Gdy [zmienna_nazwa] jest stringiem otrzymuje: "Notice: Array to string conversion in X:\...\index.php on line 167 Array".

Oczywiście mam na celu odczytanie stringa [zmienna_nazwa]
nospor
To nie chodzi o string a o tablice.... $array[$key]; jest tablica wiec nie mozesz uzywac echo... uzyj print_r($array[$key]);

A nastepnym razem pisz od razu jakie masz bledy a nie wymyslasz swoje teorie.
darkkamil
Okey może trochę tłumacze jak potłuczony. Jak na tym przykładzie odczytałbyś wszystkie nazwy [zmienna_nazwa] ?
markuz
$key to twoja zmienna_nazwa, a $array[$key] jest TABLICĄ dlatego nie możesz zrobić echo, jak chcesz możesz użyć kolejnego foreach dopóki is_array($array[$key]) === false np.
  1. function print_table($table) {
  2. if(is_array($table)) {
  3. foreach($table as $key => $value) {
  4. echo $key . " : " . PHP_EOL;
  5. print_table($value);
  6. }
  7. } else echo $table;
  8. }


darkkamil
markuz, wielkie dzięki bardzo mi rozjaśniłeś i rozwiązałeś mój problem tą funkcją.
Pyton_000
print_r(array_keys($array));
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.