PHP读取json数组值

时间:2017-04-05 05:43:50

标签: php json

我正在制作一个网站,显示州的列表,然后是该州每个国家公园的子列表。我目前能够显示状态,并显示正确数量的子列表元素(每个州的相应公园数量显示正确的项目符号数),但我无法获取公园名称和网址工作。我几周前在Javascript中做过这个,但现在我需要它在php中。

以下是我的数组样本:

{
    "stateParks": [
    {"state": "Alabama", "parks": []},
    {"state": "Alaska", "parks": [{"parkName":"Denali", "url":"https://www.nps.gov/dena/index.htm"},{"parkName":"Glacier Bay", "url":"https://www.nps.gov/glba/index.htm"}]},

这是我目前的php:

<?php
$jsonData = file_get_contents("../data/stateParks.json");
$jsonDecoded = json_decode($jsonData, true);
$output = '<ul class="stateParks">';

foreach($jsonDecoded['stateParks'] as $statePark)
{
    $counter = 0;
    $output .= '<li class="superlist">'.$statePark['state'].'<ul>';
    foreach($statePark['parks'] as $parks)
    {
        $output .= '<li class="sublist"><a href="'.$parks[$counter]['url'].'">'.$parks[$counter]['parkName'].'</a></li>';
        $counter++;
    }
    $output .= '</ul></li>';
}
$output .= '</ul>';
echo $output;

?>

这是一项任务,所以如果你没有告诉我直接答案,我将不胜感激,因为我想确保我明白错误,我不喜欢作弊。但是非常感谢任何指针,提示和提示。

1 个答案:

答案 0 :(得分:0)

你只需要删除$ counter

use $parks['url'] instead $parks[$counter]['url']

use $parks['parkName'] instead $parks[$counter]['parkName']