2014-01-06 4 views
0

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

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 
+0

Согласно [их документам] (http://simplehtmldom.sourceforge.net/#fragment-14), похоже, что вы должны иметь возможность использовать только тот синтаксис, который у вас есть ... не работает ли это? – Sam

ответ

2

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

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

Вы можете затем цикл через ваши таблицы и найти в ТД в каждой таблице:

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

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

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

$table = $tables[1]; 

Или что-то в этом роде.

+0

круто, помогает alot cheers :) –