Как пропустить последние n строк с помощью simple_html_dom или Dom Document?

Есть ли способ пропустить всегда последние n строк анализируемой таблицы через документ simple_html_dom или dom?

Я пытался работать с фиксированными номерами, но так как исходный файл мог изменить количество строк, это не сработало.

Это мой стандартный код для разбора таблицы. У вас есть идея или подсказка для меня, как пропустить всегда последние два ряда?

$table = $html->find('table', 1);
$rowData = array();

foreach($table->find('tr') as $row) {
// initialize array to store the cell data from each row

$roster = array();
foreach($row->find('td') as $cell) {
$roster[] = $cell->innertext;
}
foreach($row->find('th') as $cell) {
$roster[] = $cell->innertext;
}
$rowData[] = $roster;
}

foreach ($rowData as $row => $tr) {
echo '<tr>';
foreach ($tr as $td)
echo '<td>' . $td .'</td>';
echo '</tr>';
}
echo '</table></td><td>';

0

Решение

Вы можете просто pop два элемента из вашего массива find Результаты:

$rows = $table->find('tr');
array_pop($rows);
array_pop($rows);

foreach ($rows as $row) {
// do stuff here
}

Конечно, это не идеальное решение, в качестве альтернативы вы можете получить count найденных строк и использовать индекс для управления текущим элементом в foreach:

$rows = $table->find('tr');
$limit = count($rows) - 2;
$counter = 0;

foreach ($rows as $row) {
if ($counter++ < $limit) {
break;
}

// do stuff
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]