PHP multidimensional array to html table

html, php

Solution

You've got one too many `foreach`'s going on there. Try this instead:

echo "<table><tr><td>Question</td><td>Rating</td></tr>";
     foreach ($marksarray as $mks){
        echo "<tr><td>".$mks[0]."</td><td>".$mks[1]."</td></tr>";
    }
echo "</table></div>";

For future reference, it makes your code far easier to understand if you use an array of associative arrays with meaningful keys. e.g.

$marksarray = array(
    array('qid' => 8, 'rating' => 0), 
    array('qid' => 9, 'rating' => 1), 
    array('qid' => 13, 'rating' => 2)
);

Then your loop would look like this:

foreach ($marksarray as $mark){
    echo "<tr><td>".$mark['qid']."</td><td>".$mark['rating']."</td></tr>";
}

Better still, you should use MVC (Model, View, Controller) and pass this data into a view...but that's another subject entirely.

Problem

I have an multidimensional array which I'm trying to output as a table, here is my array; ``` $marksarray= array(3) { [0]=> array(2) { [0]=> string(1) "8" [1]=> string(1) "0" } [1]=> array(2) { [0]=> string(1) "9" [1]=> string(1) "1" } [2]=> array(2) { [0]=> string(2) "13" [1]=> string(1) "2" } } ``` So far I have my code like this; ``` echo "<table><tr><td>Question</td><td>Rating</td></tr>"; foreach ($marksarray as $mks){ foreach ($mks as $qid=>$rate){ echo "<tr><td>".$qid."</td><td>".$rate."</td></tr>"; } } echo "</table></div>"; ``` But my output is; What is that i'm doing wrong?

Original source