PHP получает это с помощью AJAX в формате JSON (назовем его $json_string
):PHP цикл через массив объектов (JSON)
[{"pid":"284","qty":"1","sn":"12"},{"pid":"284","qty":"1","sn":"23"},{"pid":"276","qty":"1","sn":"34"},{"pid":"276","qty":"1","sn":"45"},{"pid":"276","qty":"1","sn":"56"},{"pid":"281","qty":"1","sn":"57"},{"pid":"281","qty":"1","sn":"67"},{"pid":"281","qty":"1","sn":"78"}]
Я хочу перебрать массивов, например, так:
$out = '<table>';
$arr = json_decode($json_string);
foreach ($arr AS $row){
$out .= '<tr><td>'.$row['pid'].'</td><td>'.$row['qty'].'</td><td>'.$row['sn'].'</td></tr>';
}
$out .= '</table>';
Я получаю сообщение об ошибке: Fatal error: Cannot use object of type stdClass as array
Не означает ли это, что json_decode возвращает то, что НЕ является массивом? –
@ThomasKilian Нет, но '$ arr = json_decode ($ json_string, true)' приводит к ассоциативному массиву: $ pid = $ arr ['pid']; '- тогда как просто $ $ = json_decode ($ json_string) 'приводит к простому массиву:' $ pid = $ arr [0]; 'Зависит от данных, а не только от желаемого результата. Выше приведены данные с данными. – crashwap