2016-08-02 4 views
0

Мне нужно распечатать каждое значение, зацикливая данные ниже json.петля foreach для петли через Json

{ 
    "Name": "xyz", 
    "Address": "abc", 
    "City": "London", 
    "Phone": "123456" 
} 

Я попытался это:

$DecodedFile = json_decode(file_get_contents("file.json")); 

foreach ($DecodedFile->{$key} as $value) { 
    echo "$value <br>"; 
} 

ответ

0

Вам не нужно ->{$key}. Это просто:

foreach ($DecodedFile as $value) { 
    echo "$value <br>"; 
} 

или если вы хотите использовать ключ, а также:

foreach ($DecodedFile as $key => $value) { 
    echo "$key: $value <br>"; 
} 

После того как вы json_decode, вы получите этот $DecodedFile:

object(stdClass)[1] 
    public 'Name' => string 'xyz' (length=3) 
    public 'Address' => string 'abc' (length=3) 
    public 'City' => string 'London' (length=6) 
    public 'Phone' => string '123456' (length=6) 

И тогда это просто регулярные object iteration ,

может использовать этот синтаксис, если вы хотите получить одно конкретное свойство от декодированного объекта, хотя скобки не нужны.

$key = 'City'; 
echo $DecodedFile->$key; 
0

Вы перемешалось немного свой Еогеасп. Измените это так:

foreach($DecodedFile as $key=>$value)