You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP实现双列HTML表格转指定结构的二维关联数组

修正PHP解析HTML表格为指定数组结构的代码

你的核心问题在于原代码逻辑是为多列表头的表格设计的(每行包含多个表头对应的值),但你的表格结构是每行仅包含一组标题(th)和值(td),因此需要调整遍历逻辑,直接按行配对th和td。

修正后的代码

$DOM = new DOMDocument();
$DOM->loadHTML($htmlContent);

$result = [];

// 获取表格中所有行
$rows = $DOM->getElementsByTagName('tr');
foreach ($rows as $row) {
    // 获取当前行的th和td元素
    $thElement = $row->getElementsByTagName('th')->item(0);
    $tdElement = $row->getElementsByTagName('td')->item(0);
    
    // 确保元素存在再处理
    if ($thElement && $tdElement) {
        $result[] = [
            'name' => trim($thElement->textContent),
            'value' => trim($tdElement->textContent)
        ];
    }
}

print_r($result);

关键改动说明

  • 按行遍历而非全局收集元素:直接遍历每个<tr>,确保每行的th和td一一对应,避免原代码分组逻辑导致的结构错误
  • 直接构建目标结构:对每一行,取出th的文本作为name值,td的文本作为value值,直接生成目标格式的数组并追加到结果中
  • 增加存在性检查:避免因表格中存在空行或不完整行导致的报错

运行上述代码后,将得到你期望的结果:

[
    ['name' => "test1", 'value' => "test1-1"],
    ['name' => "test2", 'value' => "test2-2"],
]

内容的提问来源于stack exchange,提问作者Anna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 01:51:17