简体   繁体   中英

Foreach PHP looping troubles

I'm having trouble decoding my json it seems only to decode one of the "geometry->coordinates" fields like only one polygon. It has something with # LINE 5 to do. How can i fix it will actual work.

i've built what i got now with help from here: How to extract and access data from JSON with PHP?

# LINE 5

foreach($polygon->features[0]->geometry->coordinates as $coordinates)

# FULL CODE

<?php
$str = '{"type":"FeatureCollection","features":[{"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[[9.78281,54.923985],[9.80341,54.901586],[9.819803,54.901981],[9.83551,54.908396],[9.825897,54.91481],[9.822721,54.927142],[9.807186,54.927931],[9.792767,54.926797],[9.78281,54.923985]]]}},{"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[[9.914474,54.930298],[9.901085,54.912343],[9.849243,54.912146],[9.846497,54.928917],[9.890785,54.946865],[9.930267,54.937399],[9.914474,54.930298]]]}}]}';

$polygon = json_decode($str);

foreach($polygon->features[0]->geometry->coordinates as $coordinates)
{
    print_r($coordinates);
    
}
?>

You are only looping over the first (or zeroth) item by doing $polygon->features[0] . Instead, loop over those features, too:

foreach($polygon->features as $feature){
    foreach($feature->geometry->coordinates as $coordinates)
    {
        print_r($coordinates);
    
    }   
}

Demo: https://3v4l.org/kk0uZ

<?php $str = '{"type":"FeatureCollection","features":[{"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[[9.78281,54.923985],[9.80341,54.901586],[9.819803,54.901981],[9.83551,54.908396],[9.825897,54.91481],[9.822721,54.927142],[9.807186,54.927931],[9.792767,54.926797],[9.78281,54.923985]]]}},{"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[[9.914474,54.930298],[9.901085,54.912343],[9.849243,54.912146],[9.846497,54.928917],[9.890785,54.946865],[9.930267,54.937399],[9.914474,54.930298]]]}}]}'; $polygon = json_decode($str); foreach($polygon->features as $feature) { foreach($feature->geometry->coordinates as $coordinates) { print_r($coordinates); } }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM