ik ben net begonnen met php en json maar hoe kan ik dit het beste uitlezen

heb de volgende code

<?php
$out = [];

foreach($historie_output as $element) {
        $out[$element['seizoen']][] = ['datum' => $element['datum'], 'wedstrijd' => $element['wedstrijd'], 'uitslag' => $element['uitslag']];
}
 $testaantal = count($out); 
 echo  $testaantal;
 
 var_dump(json_encode($out, JSON_PRETTY_PRINT));


echo '<table width="100%" border="0" cellspacing="2" cellpadding="2">';
  for ($n = 0; $n < $testaantal; $n++)
  {
    echo '<tr>';
		echo '<td>' . $out[$n]['seizoen'] . '</td>'; 
		echo '<td>' . $out[$n]['wedstrijd'] . '</td>'; 
		echo '<td>' . $out[$n]['uitslag'] . '</td>'; 
	echo '</tr>';
  }
echo '</table>';
?>


het json file zit er als volgt uit

string(1196) "{ "seizoen 2009\/'10": [ { "datum": "30 aug 2009", "wedstrijd": "Vorden 1 - AZC 1", "uitslag": "1 - 1" } ], "seizoen 2014\/'15": [ { "datum": "2 nov 2014", "wedstrijd": "AZC 1 - Vorden 1", "uitslag": "2 - 1" }, { "datum": "22 mrt 2015", "wedstrijd": "Vorden 1 - AZC 1", "uitslag": "3 - 2" } ], "seizoen 2016\/'17": [ { "datum": "2 okt 2016", "wedstrijd": "Vorden 1 - AZC 1", "uitslag": "1 - 0" }, { "datum": "26 mrt 2017", "wedstrijd": "AZC 1 - Vorden 1", "uitslag": "4 - 1" }, { "datum": "28 mrt 2017", "wedstrijd": "AZC 1 - Vorden 1", "uitslag": "2 - 1" } ], "seizoen 2017\/'18": [ { "datum": "22 okt 2017", "wedstrijd": "Vorden 1 - AZC 1", "uitslag": "2 - 1" }, { "datum": "25 mrt 2018", "wedstrijd": "AZC 1 - Vorden 1", "uitslag": "2 - 0" } ] }"

nu wil ik dat alle uitslagen van een bepaald seizoen onder elkaar worden gezet.

voorbeeld

seizoen 1

uitslag 1
uitslag 2

seizoen 2
enz...




<?php
echo '<table width="100%" border="0" cellspacing="2" cellpadding="2">';
  for ($n = 0; $n < $testaantal; $n++)
  {
    echo '<tr>';
		echo '<td>' . $out[$n]['seizoen'] . '</td>'; 
		echo '<td>' . $out[$n]['wedstrijd'] . '</td>'; 
		echo '<td>' . $out[$n]['uitslag'] . '</td>'; 
	echo '</tr>';
  }
echo '</table>';
?>

Verander die var_dump tijdens het debuggen eens in een print_r() functie. En zet dit tussen HTML pre-tags. Dan zie je een overzichtelijke 'boom' met je data.
Als je tijdens het weergeven in een variabele bijhoudt in welk seizoen je zit kun je een nieuw kopje introduceren op het moment dat het seizoen wisselt.
de gegevens van de print_r zien er goed uit
Array
(
[seizoen 2009/'10] => Array
(
[0] => Array
(
[datum] => 30 aug 2009
[wedstrijd] => Vorden 1 - AZC 1
[uitslag] => 1 - 1
)

)

[seizoen 2014/'15] => Array
(
[0] => Array
(
[datum] => 2 nov 2014
[wedstrijd] => AZC 1 - Vorden 1
[uitslag] => 2 - 1
)

[1] => Array
(
[datum] => 22 mrt 2015
[wedstrijd] => Vorden 1 - AZC 1
[uitslag] => 3 - 2
)

)
)



dit wil ik graag op volgende manier getoond hebben
seizoen 1
datum wedstrijd uitslag

seizoen 2
datum wedstrijd uitslag
datum wedstrijd uitslag

enz..

ik heb dus het volgende wat niet goed gaat
<?php
$out = [];
foreach($historie_output as $element) {
$out[$element['seizoen']][] = ['datum' => $element['datum'], 'wedstrijd' => $element['wedstrijd'], 'uitslag' => $element['uitslag']];
}
$testaantal = count($out);
echo '<pre>';
print_r($out);
echo '</pre>' ;
echo '<table width="100%" border="0" cellspacing="2" cellpadding="2">';
for ($n = 0; $n < $testaantal; $n++)
{
echo '<tr>';
echo '<td>' . $out['seizoen'][$n] . '</td>';
echo '</tr>';
}
echo '</table>';
?>

zouden jullie me wat op weg willen helpen hoe dit voor elkaar te krijgen


Of, alternatief, je organiseert alle data op seizoen. Dan is het gewoon een kwestie van een dubbele for-loop. Zo te zien gebeurt dit al?
<?php
// ben er geen fan van, maar even voor het begrip in het nederlands
foreach ($output as $seizoen => $wedstrijden) {
    // hier het seizoen kopje
    // ...
    foreach ($wedstrijden as $wedstrijd) {
        // hier wedstrijddata
        // ...
    }
}
?>

And Bob's your uncle?
bedankt voor de informatie thomas
dit heeft inderdaad het gewenste resultaat opgeleverd.

ben net beginner met json en weet klein beetje van php maar je hebt me goed geholpen om het juiste resultaat te krijgen.

Reageren