Gdy wywołujesz funkcje
json_decode(), jak poniżej, z jednym parametrem, którym jest JSON do zdekodowania to domyślnie funkcja nie zwróci ci tablicy ale obiekt klasy
stdClass$jsonDecode = json_decode($json);
Czyli w tym wypadku będziesz miał obiekt klasy
stdClass zawierający tablice obiektów (users), które będą miały właściwości takie jak "id","name","from"
Jeśli natomiast chcesz mieć zdekodowane dane z JSON w tablicy musisz wywołać
json_decode() z drugim parametrem ustawionym na
true, czyli:
$decodedJson = json_decode($json,true);
Polecam dokumentację:
Dokumentacja: json_decode()Dokumentacja: stdClassA jak odczytać dane? Na przykład w następujący sposób:
$decodedJson = json_decode($json);
/*
var_dump($decodedJson) i wszystko bedzie jasne ;)
$decodedJson->users to nasza tablica obiektów
*/
foreach ($decodedJson->users as $key => $userObject)
{
$key=$key+1;
echo "id: {$userObject->id}, "; echo "name: {$userObject->name}, "; echo "from: {$userObject->from}"; }
Skrypt wyświetli:
[User 1] : id: 368, name: iPhone, from: 1500
[User 2] : id: 18224, name: Kolekcja trampek, from: 456
[User 3] : id: 1093, name: aaa, from: 123456Gdybyś sie jednak uparł przy tablicach to możesz zrobić tak:
$decodedJson = json_decode($json,true);
foreach ($decodedJson['users'] as $key => $userArray)
{
$key=$key+1;
echo "id: {$userArray['id']}, "; echo "name: {$userArray['name']}, "; echo "from: {$userArray['from']}"; }
Wynik oczywiście ten sam:
[User 1] : id: 368, name: iPhone, from: 1500
[User 2] : id: 18224, name: Kolekcja trampek, from: 456
[User 3] : id: 1093, name: aaa, from: 123456