来自PHP的JSON –嵌套数组

画家约翰

我正在从PHP输出一些JSON,但是我很难理解如何做嵌套数组(至少我认为这就是所谓的)

例如,我可以输出单个集合,"type": "Feature"但是我该怎么办

"geometry": {
    "type": "Point",
    "coordinates": [-77.03238901390978,38.913188059745586]
},

例如,JSON数组中一项的所需输出可能是:

{
    "type": "Feature",
    "geometry": {
        "type": "Point",
        "coordinates": [-77.03238901390978,38.913188059745586]
    },
    "properties": {
        "title": "Mapbox DC",
        "description": "1714 14th St NW, Washington DC",
        "marker-color": "#fc4353",
        "marker-size": "large",
        "marker-symbol": "monument"
    }
},

到目前为止,我的代码如下所示:

<?php 
$projects = $pages->find('template=project-detail, sort=sort');
$projects_array = array();

foreach ($projects as $project) {

    $title = $project->title;
    $long = $project->project_location_marker_long;
    $lat = $project->project_location_marker_lat;

    $projects_array[] = array(
        'title' => $title
    );

}

$projects_json = json_encode($projects_array, true);
?>
<script>
var geojson = <?php echo echo $projects_json; ?>
</script>

生成如下内容:

[{
    "title": "Steel Strike 1980"
}, {
    "title": "Chapel Flat Dyke Boat"
}]
乔尔·辛兹(Joel Hinz)

嵌套数组很容易创建。这是一个例子:

$my_array = array(
    'string_example' => 'asdf',
    'integer_example' => 42,
    'array_example' => array() // this array is nested
);

在这个嵌套数组中,您可以放置​​任何想要的东西。例如,让我们把完全一样的东西放进去:

$my_array = array(
    'string_example' => 'asdf',
    'integer_example' => 42,
    'array_example' => array(
        'string_example' => 'asdf',
        'integer_example' => 42,
        'array_example' => array()
    )
);

因此,从您的代码示例开始,鉴于您包括的数据,这是一个开始:

foreach ($projects as $project) {

    $title = $project->title;
    $long = $project->project_location_marker_long;
    $lat = $project->project_location_marker_lat;

    $projects_array[] = array(
        'geometry' => array(
            'coordinates' => array($long, $lat)
        )
        'properties' => array(
            'title' => $title
        )
    );

}

编码后将产生以下json:

{
    "geometry": {
        "coordinates": [-77.03238901390978,38.913188059745586]
    },
    "properties": {
        "title": "Mapbox DC",
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章