Simple html dom parser table to array

22,891

Maybe try putting each row into an array and then each cell into another array. Hopefully, that will do what you want.

require('simple_html_dom.php');
$html = file_get_html('http://flightplan.romatsa.ro/init/fpl/flightslr/LRCL/');

$table = $html->find('table', 3);
$rowData = array();

foreach($table->find('tr') as $row) {
    // initialize array to store the cell data from each row
    $flight = array();
    foreach($row->find('td') as $cell) {
        // push the cell's text to the array
        $flight[] = $cell->plaintext;
    }
    $rowData[] = $flight;
}

echo '<table>';
foreach ($rowData as $row => $tr) {
    echo '<tr>'; 
    foreach ($tr as $td)
        echo '<td>' . $td .'</td>';
    echo '</tr>';
}
echo '</table>';

Note: this solution requires the simple_html_dom.php library. Get it here!

Share:
22,891
loplo
Author by

loplo

Updated on July 28, 2022

Comments

  • loplo
    loplo almost 2 years

    I'm trying to parse the arrivals table from here [1] and put in into an array to be able to format it and put it into a table.

    I did some research here and there, I've got some code from other questions, but I can't make the array and table look as I'd like.

    Anyone can help me out?

    <?php
    require('simple_html_dom.php');
    $html = file_get_html('http://flightplan.romatsa.ro/init/fpl/flightslr/LRCL/');
    $table = $html->find('table', 3);
    foreach($table->find('tr') as $row) {
    // initialize array to store the cell data from each row
    $rowData = array();
    foreach($row->find('td') as $cell) {
    // push the cell's text to the array
    $rowData[] = $cell->innertext;
    }
    echo "<table>";
    echo "<td>";
    echo $rowData[0]. " ";
    echo "</td>";
    echo "<td>";
    echo $rowData[1]. " ";
    echo "</td>";
    echo "<td>";
    echo $rowData[2]. " ";
    echo "</td>";
    echo "<td>";
    echo $rowData[3]. " ";
    echo "</td>";
    echo "<td>";
    echo $rowData[4]. " ";
    echo "</td>";
    echo "<td>";
    echo $rowData[5]. " ";
    echo "</td>";
    echo "<td>";
    echo $rowData[6]. " ";
    echo "</td>";
    echo "<td>";
    echo $rowData[7]. " ";
    echo "</td>";
    echo "<td>";
    echo $rowData[8]. " ";
    echo "</td>";
    echo "</table>";
    }
    ?>