PHP Simple Dom - цикл по одному классу за раз?

Есть какой-либо способ сделать это? в настоящее время я использую этот метод, чтобы пройти через td для каждой таблицы в записи википедии, которая имеет класс wikitable.

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

1 ответ

Решение

Я не совсем понимаю ваш вопрос, но кажется, что $html->find просто возвращает массив, в вашем случае массив таблиц:

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

Затем вы можете перебрать свои таблицы и найти значения в каждой таблице:

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

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

Если вы хотите настроить таргетинг только на вторую таблицу, вы можете использовать:

$table = $tables[1];

Или что-то типа того.

Другие вопросы по тегам