0

我正在使用 SimpleHTMLDOM,我有两个具有相同列的表,我需要提取列标题?

示例图片

下面是我用来获取所有数据的方法,但现在我只需要选择月份和相应的列标题(一月、二月等)

 $r_tables = $dom->find('table');

foreach($r_tables as $table) {
    $r_cells = $table->find('td');

    foreach($r_cells as $cell) {
        echo $cell->plaintext.'<br />';
    }
}
4

4 回答 4

1

我想你正在寻找的是......

$tables = $dom->find('table');

foreach($tables as $table) {
    $r_cells = $table->find('tr');
    $i = 0;
    foreach($r_cells as $row) {
        $cell = $row->find('td');
        if ($i == 0) {
            foreach($cell as $td) { 
                echo $td.'<br />';
            }
        }  
    $i++;  
    }
}
于 2013-02-11T23:39:51.717 回答
0

这应该做你想做的(如果我理解正确的话):

foreach($r_tables as $table) {
    $r_cells = $table->find('td');

    echo $r_cells[0]->plaintext . '<br />';;
}
于 2013-02-12T00:39:11.787 回答
0

一个粗略的方法是

$i = 0;
foreach($r_tables as $table) {
$r_cells = $table->find('td');

foreach($r_cells as $cell) {
  if($i == 0) {    
    echo $cell->plaintext.'<br />';
  }    
}
$i++;

}

于 2013-02-11T23:02:49.893 回答
0

从第一个表的第一个 tr 中找到 td:

$tds = $dom->find('table', 0)->find('tr', 0)->find('td');

将每个 td 的文本映射到一个数组中:

$headers = array_map(function($td){return $td->text();}, $tds);
于 2013-02-12T00:33:35.967 回答