0

有没有办法做到这一点?目前,我正在使用这种方法来遍历维基百科条目中具有 wikitable 类的每个表的 td。

foreach ($html->find('table.wikitable td') as $key => $info)
{
    $text = $info->innertext;
}

但是,我想做的是为每个共享 wikitable 类名的表设置单独的循环。我不知道该怎么做。

有某种语法吗?我想做这样的事情

$first_table = $html->find('table.wikitable td', 0); // return all the td's for the first table
$second_table = $html->find('table.wikitable td', 1); // second one
4

1 回答 1

2

我可能不完全理解您的问题,但似乎$html->find只是返回一个数组,在您的情况下是一个表数组:

$tables = $html->find('table.wikitable');

然后,您可以遍历您的表并在每个表中找到 td:

foreach( $tables as $table )
{
   $tds = $table->find('td');

   foreach( $tds as $td )
   {
      ...
   }
}

如果您只想定位第二个表,您可以使用:

$table = $tables[1];

或类似的东西。

于 2014-01-06T20:17:37.483 回答