Home >Backend Development >PHP Problem >How to convert php html table into array

How to convert php html table into array

PHPz
PHPzOriginal
2023-04-19 11:29:171010browse

Tables in HTML are often used to display data. However, when we need to process the data, it is more convenient to convert the table data into an array. PHP is a powerful programming language that provides many functions and methods to process HTML tables and convert them into arrays.

1. The basic format of HTML tables

Before introducing table conversion, we need to understand the basic format of HTML tables. A general HTML table consists of tags such as

, ,
, and . Among them, represents the entire table, represents the row,
represents the column header, and represents the cell.

For example, the following is a simple HTML table:

<table>
  <tr>
    <th>姓名</th>
    <th>年龄</th>
    <th>性别</th>
  </tr>
  <tr>
    <td>张三</td>
    <td>25</td>
    <td>男</td>
  </tr>
  <tr>
    <td>李四</td>
    <td>28</td>
    <td>女</td>
  </tr>
</table>

2. Use PHP to convert the HTML table into an array

In PHP, we can use regular expressions or DOM to parse HTML tables. Here we introduce a method of using DOM.

  1. Create DOM object

First, we need to create a DOM object and load the HTML content into it. HTML strings can be converted into DOM objects using the simplexml_load_string() function.

$html = '<table>...</table>';
$dom = new DOMDocument();
$dom->loadHTML($html);
  1. Traverse table contents

Next, we need to traverse the table contents and store the value of each cell into an array. You can use the getElementsByTagName() method to get all cells in the table.

$table = $dom->getElementsByTagName('table')[0];
$rows = $table->getElementsByTagName('tr');
$data = array();
foreach ($rows as $row) {
  $cols = $row->getElementsByTagName('td');
  $row_data = array();
  foreach ($cols as $col) {
    $row_data[] = $col->nodeValue;
  }
  $data[] = $row_data;
}

In this code, we first obtain the table object, and then traverse each row. For each row, we get all the cells in it and add the cell's value to an array of row data. Finally, we add the row data to the table data array.

  1. Output table data

Now that we have converted the HTML tables into arrays, they can be output or further processed. For example, we can use the print_r() function to print out the converted data.

print_r($data);

The output results are as follows:

Array
(
    [0] => Array
        (
            [0] => 姓名
            [1] => 年龄
            [2] => 性别
        )

    [1] => Array
        (
            [0] => 张三
            [1] => 25
            [2] => 男
        )

    [2] => Array
        (
            [0] => 李四
            [1] => 28
            [2] => 女
        )
)

3. Conclusion

Through the above code, we can convert the HTML table into a PHP array with a two-dimensional array structure. This approach is a simple yet powerful way to quickly process data in HTML tables. In actual projects, we need to make certain modifications and optimizations to the code based on actual needs.

The above is the detailed content of How to convert php html table into array. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn