Как перебрать все элементы массива JSON с помощью PHP?
Есть файл JSON:
{
"section_1" : {
"object_1" : {
"name" : "Объект 1",
"cost" : 100
},
"object_2" : {
"name" : "Объект 2",
"cost" : 200
}
},
"section_2" : {
"object_3" : {
"name" : "Объект 3",
"cost" : 300
}
}
}
Также PHP код:
$json = file_get_contents('./JSON_file.json');
$json = json_decode($json, true);
Подскажите, пожалуйста, как мне в PHP перебрать (желательно вывести на экран или в консоль) все name и cost? Полагаю, надо воспользоваться foreach, но никак не получается.
Ответы (2 шт):
Автор решения: ink Shio
→ Ссылка
Решение так себе. Не понятно что тебе нужно и как выводить.
$json = '{
"section_1" : {
"object_1" : {
"name" : "Объект 1",
"cost" : 100
},
"object_2" : {
"name" : "Объект 2",
"cost" : 200
}
},
"section_2" : {
"object_3" : {
"name" : "Объект 3",
"cost" : 300
}
}
}';
$decode = json_decode($json);
$newarray = [];
$index = 0;
foreach($decode as $key => $value ){
foreach($value as $v) {
$newarray[$index]['name'] = $v->name;
$newarray[$index]['cost'] = $v->cost;
$index++;
}
}
//echo "<pre>";
//print_r($newarray);
//echo "</pre>";
foreach($newarray as $item) {
echo "<div class='block'>";
echo "<div>Имя: ".$item['name']."</div>";
echo "<div>Цена: ".$item['cost']."</div>";
echo "</div>";
}
пример тут
Автор решения: Kirill Peace
→ Ссылка
Разобрался, вот работающий код
foreach ($massive as $section => $objects){
foreach ($objects as $id => $data){
if(array_key_exists($id, $countMas)){
echo 'name: '.$data['name'];
echo ' || count: '.$countMas[$id].'<br>';
}
}
}