📅  最后修改于: 2023-12-03 15:01:17.617000             🧑  作者: Mango
在Web开发中,HTML表格是一种很常见的数据显示方式。但有时候需要将这些表格中的数据以数组形式传递到PHP中进行处理,这时候就需要将HTML表格转换为数组。本篇文章将介绍如何将HTML表格转换为数组,并给出代码示例。
一个标准的HTML表格结构如下:
<table>
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>20</td>
<td>男</td>
</tr>
<tr>
<td>李四</td>
<td>22</td>
<td>女</td>
</tr>
<tr>
<td>王五</td>
<td>25</td>
<td>男</td>
</tr>
</tbody>
</table>
使用PHP中的DOMDocument和DOMXPath类可以轻松地将HTML表格转换为数组,具体步骤如下:
创建DOMDocument对象,并将HTML代码加载进去。
$html = "<table>...</table>";
$dom = new DOMDocument();
$dom->loadHTML($html);
创建DOMXPath对象,用于对HTML代码进行查询。
$xpath = new DOMXPath($dom);
查询表格中的行和列,并将其存储到一个二维数组中。
$table = array();
$rows = $xpath->query("//table/tbody/tr");
$colCount = $xpath->query("//table/thead/tr/th")->length;
foreach ($rows as $row) {
$rowData = array();
for ($i = 0; $i < $colCount; $i++) {
$rowData[] = $xpath->query("td", $row)->item($i)->nodeValue;
}
$table[] = $rowData;
}
现在,$table变量就是转换后的数组了。
<?php
$html = '
<table>
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>20</td>
<td>男</td>
</tr>
<tr>
<td>李四</td>
<td>22</td>
<td>女</td>
</tr>
<tr>
<td>王五</td>
<td>25</td>
<td>男</td>
</tr>
</tbody>
</table>
';
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$table = array();
$rows = $xpath->query("//table/tbody/tr");
$colCount = $xpath->query("//table/thead/tr/th")->length;
foreach ($rows as $row) {
$rowData = array();
for ($i = 0; $i < $colCount; $i++) {
$rowData[] = $xpath->query("td", $row)->item($i)->nodeValue;
}
$table[] = $rowData;
}
print_r($table);
?>
通过本文的介绍,我们学习了如何将HTML表格转换为数组。希望对大家有所帮助。