Конвертировать JSON в PHP Array и Echo?

Вот мой PHP-код:

<?php
$json_url = "REDACTED";
$json = file_get_contents($json_url);

$stats = json_decode($json, true);

foreach ($stats as $row) {
echo $row['results']['result']['conversions'] . "<br />";
}
?>

Вот JSON:

{
"metadata":{
"iserror":"false",
"responsetime":"0.07s"},
"results":{
"first":1,
"last":99,
"total":99,
"result":[
{
"total_visitors":"3",
"visitors":"3",
"conversions":"0"},
{
"total_visitors":"26",
"visitors":"26",
"conversions":"0"},
{
"total_visitors":"13",
"visitors":"13",
"conversions":"0"},
{
"total_visitors":"1",
"visitors":"1",
"conversions":"0"},
{
"total_visitors":"1",
"visitors":"1",
"conversions":"0"}
]
}
}

По сути, я просто пытаюсь повторить «преобразования» из каждого раздела в файле json.

Никогда не работал с файлом JSON, использующим PHP для, поэтому я не совсем уверен, где я ошибаюсь с этим.

1

Решение

Нужна небольшая коррекция в доступе к массиву, как показано ниже

foreach ($stats['results']['result'] as $row) {
echo $row['conversions'] . "<br />";
}

Потому что, когда вы делаете json_decode, вы получите массив, как показано ниже

Array
(
[metadata] => Array
(
[iserror] => false
[responsetime] => 0.07s
)

[results] => Array
(
[first] => 1
[last] => 99
[total] => 99
[result] => Array
(
[0] => Array
(
[total_visitors] => 3
[visitors] => 3
[conversions] => 0
)

[1] => Array
(
[total_visitors] => 26
[visitors] => 26
[conversions] => 0
)

[2] => Array
(
[total_visitors] => 13
[visitors] => 13
[conversions] => 0
)

[3] => Array
(
[total_visitors] => 1
[visitors] => 1
[conversions] => 0
)

[4] => Array
(
[total_visitors] => 1
[visitors] => 1
[conversions] => 0
)

)

)

)
1

Другие решения

Это должно быть похоже на следующее:

<?php
$json_url = "REDACTED";
$json = file_get_contents($json_url);

$stats = json_decode($json, true);
if ($stats && isset($stats['results']) && isset($stats['results']['result'])) {
foreach ($stats['results']['result'] as $row) {
echo $row['conversions'] . "<br />";
}
}
?>

Поэтому проверьте, установлены ли необходимые поля в JSON, а затем выполните цикл для каждого result запись, чтобы получить conversions,

0

$ stats = json_decode ($ json, true);

foreach ($stats['results']['result'] as $row) {
echo $row['conversions'] . "<br />";
}
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector