, являющийся полным «noob» для php, я пытаюсь прочитать данные из json-файла с вложенными массивами. Вот что мне удалось достичь до сих пор. JSON:PHP-цикл через вложенный массив json
{
"activites": [
{
"nom": "Observation des oiseaux",
"image": "http://cdn2.gossipcenter.com/sites/default/files/imagecache/story_header/photos/tom-cruise-020514sp.jpg",
"description": "Sed id eros nec orci elementum auctor at vitae tortor. Pellentesque eget nibh sed justo consequat suscipit. Nunc augue sem, porta non molestie sed, volutpat quis orci. Curabitur in erat eu nibh fermentum volutpat vitae ut nisi. Nullam vitae euismod mauris. Suspendisse pretium facilisis gravida. Duis magna arcu, pharetra in sapien eu, ornare vehicula arcu.",
"parcs": [
{
"nom": "Nom du parc 1",
"url": "url-du-parc-1.html",
"location":
{
"latitude": "44.7789990",
"longitude": "67.9988990"
}
},
{
"nom": "Nom du parc 2",
"url": "url-du-parc-2.html",
"location":
{
"latitude": "44.7789990",
"longitude": "67.9988990"
}
},
{
"nom": "Nom du parc 3",
"url": "url-du-parc-3.html",
"location":
{
"latitude": "44.7789990",
"longitude": "67.9988990"
}
},
{
"nom": "Nom du parc 4",
"url": "url-du-parc-3.html",
"location":
{
"latitude": "44.7789990",
"longitude": "67.9988990"
}
}
]
},
{
"nom": "Pétanque",
"image": "http://cdn2.gossipcenter.com/sites/default/files/imagecache/story_header/photos/tom-cruise-020514sp.jpg",
"description": "Sed id eros nec orci elementum auctor at vitae tortor. Pellentesque eget nibh sed justo consequat suscipit. Nunc augue sem, porta non molestie sed, volutpat quis orci. Curabitur in erat eu nibh fermentum volutpat vitae ut nisi. Nullam vitae euismod mauris. Suspendisse pretium facilisis gravida. Duis magna arcu, pharetra in sapien eu, ornare vehicula arcu.",
"parcs": [
{
"nom": "Nom du parc 1 pour deuxième activité",
"url": "url-du-parc-1.html",
"location":
{
"latitude": "44.7789990",
"longitude": "67.9988990"
}
},
{
"nom": "Nom du parc 2 pour deuxième activité",
"url": "url-du-parc-2.html",
"location":
{
"latitude": "44.7789990",
"longitude": "67.9988990"
}
}
]
},
{
"nom": "Nom de l'activité 3",
"image": "http://cdn2.gossipcenter.com/sites/default/files/imagecache/story_header/photos/tom-cruise-020514sp.jpg",
"description": "Sed id eros nec orci elementum auctor at vitae tortor. Pellentesque eget nibh sed justo consequat suscipit. Nunc augue sem, porta non molestie sed, volutpat quis orci. Curabitur in erat eu nibh fermentum volutpat vitae ut nisi. Nullam vitae euismod mauris. Suspendisse pretium facilisis gravida. Duis magna arcu, pharetra in sapien eu, ornare vehicula arcu.",
"parcs": [
{
"nom": "Nom du parc 1 pour troisième activité",
"url": "url-du-parc-1.html",
"location":
{
"latitude": "44.7789990",
"longitude": "67.9988990"
}
},
{
"nom": "Nom du parc 2 pour troisième activité",
"url": "url-du-parc-2.html",
"location":
{
"latitude": "44.7789990",
"longitude": "67.9988990"
}
},
{
"nom": "Nom du parc 3 pour troisième activité",
"url": "url-du-parc-2.html",
"location":
{
"latitude": "44.7789990",
"longitude": "67.9988990"
}
}
]
}
]
}
и PHP:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<title></title>
<link href="assets/css/styles.css" rel="stylesheet">
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="assets/css/ie.css" />
<![endif]-->
</head>
<body>
<?php
$json_url = "./assets/js/activites.json";
$json = file_get_contents($json_url);
$stuff = json_decode($json, true);
?>
<div class="toto">
<?php
foreach($stuff['activites'] as $obj){
?>
<h2>
<?php echo $obj['nom'] ?></h2>
<a href="<?php echo $obj['parcs']['0']['url'] ?>
">
<span>
<?php echo $obj['parcs']['0']['nom'] ?></span>
</a>
<?php
}
?></div>
</body>
</html>
С помощью этого кода можно отобразить данные в <H2>
и <span>
правильно, но «URL» одинаково для каждого ... Что бы быть правильным способом получить это? Большое спасибо заранее - это, вероятно, очень очевидно, но любая помощь очень ценится!
Большое спасибо Эрик! Я дам ему попробовать :) – benp
Отлично, он работает! :) Я только должен был добавить отсутствующий '?>', Где начинается второй цикл. Просто из любопытства, почему вы говорите, что это «не очень приятно»? Я полагаю, что может быть более эффективный способ сделать это? Еще раз спасибо. – benp
Вначале я подумал, что может быть более приятный способ сделать это, но в вашем случае это прекрасно, я думаю. Замечательно, что это работает. –