Полный цикл в digital

Извлечение значений из вложенных JSON-данных в PHP

Объекты и массивы JSON также могут быть вложенными. Объект JSON может произвольно содержать другие объекты JSON, массивы, вложенные массивы, массивы объектов JSON и т. д. В следующем примере показано, как декодировать вложенный объект JSON и распечатать все его значения в PHP:

<?
// определяем рекурсивную функцию для извлечения вложенных значений
function printValues($arr) {
global $count;
global $values;
// проверяем, что это массив
if(!is_array($arr)){
die("ERROR: Input is not an array");
}
// запускаем основной цикл, если значение само по себе является массивом, рекурсивно вызываем эту же функцию добавляем все найденные значения в массив элементов вывода и увеличиваем счетчик на 1 для каждого найденного значения  
foreach($arr as $key=>$value){
if(is_array($value)){
printValues($value);
} else{
$values[] = $value;
$count++;
}
}
// возвращаем общее количество и значения, найденные в массиве
return array('total' => $count, 'values' => $values);
}
// назначаем закодированную JSON-строку переменной PHP
$json = '{
"book": {
"name": "Harry Potter and the Goblet of Fire",
"author": "J. K. Rowling",
"year": 2000,
"characters": ["Harry Potter", "Hermione Granger", "Ron Weasley"],
"genre": "Fantasy Fiction",
"price": {
"paperback": "$10.40", "hardcover": "$20.32", "kindle": "4.11"
}
}
}';
// декодируем JSON-данные в формат ассоциативного массива PHP
$arr = json_decode($json, true);
// вызываем функцию и печатаем все значения
$result = printValues($arr);
echo "

" . $result["total"] . " value(s) found:

"; echo implode("
", $result["values"]); echo "
"; // выводим одно значение echo $arr["book"]["author"] . "
"; // выводит: J. K. Rowling echo $arr["book"]["characters"][0] . "
"; // выводит: Harry Potter echo $arr["book"]["price"]["hardcover"]; // выводит: $20.32
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг