PHP: цикл через массив JSON - PullRequest
45 голосов
/ 19 января 2011

У меня есть массив json:

[
    {
        "var1": "9",
        "var2": "16",
        "var3": "16"
    },
    {
        "var1": "8",
        "var2": "15",
        "var3": "15"
    }
]

Как я могу пройти через этот массив с помощью php?

Ответы [ 4 ]

66 голосов
/ 19 января 2011

Декодируйте строку JSON, используя json_decode(), а затем просматривайте ее, используя обычный цикл:

$arr = json_decode('[{"var1":"9","var2":"16","var3":"16"},{"var1":"8","var2":"15","var3":"15"}]');

foreach($arr as $item) { //foreach element in $arr
    $uses = $item['var1']; //etc
}
55 голосов
/ 19 января 2011

Установите для второго параметра функции значение true, если вам требуется ассоциативный массив

В некоторых версиях php требуется второй параметр true, если вам требуется ассоциативный массив

$json  = '[{"var1":"9","var2":"16","var3":"16"},{"var1":"8","var2":"15","var3":"15"}]';
$array = json_decode( $json, true );
30 голосов
/ 19 января 2011

Сначала вы должны декодировать свой JSON:

$array = json_decode($the_json_code);

Затем после декодирования JSON вы должны выполнить foreach

foreach ($array as $key => $jsons) { // This will search in the 2 jsons
     foreach($jsons as $key => $value) {
         echo $value; // This will show jsut the value f each key like "var1" will print 9
                       // And then goes print 16,16,8 ...
    }
}

Если вы хотите что-то конкретное, просто спросите ключкак это.Поместите это между последним foreach.

if($key == 'var1'){
 echo $value;
}
10 голосов
/ 19 января 2011

Используйте json_decode для преобразования строки JSON в массив PHP, а затем используйте обычные функции массива PHP для него.

$json = '[{"var1":"9","var2":"16","var3":"16"},{"var1":"8","var2":"15","var3":"15"}]';
$data = json_decode($json);

var_dump($data[0]['var1']); // outputs '9'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...