I am trying to create a HTML table from an array that is obtained through api/json.
It's a nested array (the actual data is nested within the session)
Array
(
[sessid] => -hnkGi-k1rgwhnymkcScR0bom-RRKURn2S1pgMZoBX4
[status] => 0
[players] => Array
(
[0] => Array
(
[first_name] => Chris
[last_name] => Clausing
[pdga_number] => 31635
[rating] => 930
[year] => 2014
[class] => A
[gender] => M
[bracket] => Open
[country] => NL
[state_prov] =>
[tournaments] => 11
[rating_rounds_used] => 36
[points] => 998
[prize] => 0.00
)
[1] => Array
(
[first_name] => Uwe Walter
[last_name] => Schlueter
[pdga_number] => 37788
[rating] => 902
[year] => 2014
[class] => A
[gender] => M
[bracket] => Master
[country] => NL
[state_prov] =>
[tournaments] => 12
[rating_rounds_used] => 33
[points] => 970
[prize] => 0.00
)
[2] => Array
(
[first_name] => Mark
[last_name] => Steenhuis
[pdga_number] => 50574
[rating] => 859
[year] => 2014
[class] => A
[gender] => M
[bracket] => Master
[country] => NL
[state_prov] =>
[tournaments] => 12
[rating_rounds_used] => 28
[points] => 678
[prize] => 0.00
)
)
)
And the warning mesages:
Warning: Invalid argument supplied for foreach() in /home/surrealm/dvh/player_statistics.php on line 103
Warning: Invalid argument supplied for foreach() in /home/surrealm/dvh/player_statistics.php on line 103
See http://vliegende-hollander.com/player_statistics.php?year=2014&class=A&gender=M&country=NL
As you can see i can extract the desired data, and create the HTML table from it. But, I can not get rid of the two error messages.
If i take away one of the foreach() i only get first character of first value only (in this case, the first character of the sessid).
The actual bit of PHP i'm using to create the table is:
<?
if (is_array($player)) {
foreach($player as $key){
foreach($key as $k){ // <- this is line 103
echo "<tr>";
echo "<td>".$k['pdga_number']."</td>";
echo "<td>".$k['first_name']." ".$k['last_name']."</td>";
echo "<td>".$k['country']."</td>";
echo "<td>".$k['rating']."</td>";
echo "</tr>";
}
}
}
?>
Can anyone help me clean up this code, so i get rid of the two warnings?
I'm not a full-time programmer, so it's probably just my not fully understanding the foreach() function. I usually extract and display data using MySQL, and while() loops instead.