Парсинг html таблицы в массив с объединенными ячейками rowspan

Mikeekb

Новичок
У меня есть таблица с объединенными ячейками по вертикали. В массиве должны повторяться значения в следующей строке из предыдущей объединенной. Я написал такой замудреный скрипт. Но есть проблемка, если в строке встречается две объединенные колонки, то все получается не верно. Можно конечно еще много чего понаворотить тут, условий, чтобы было верно. Но может кто сталкивался с подобной задачей, и есть решение проще?
У меня не получилось сделать универсально, сделано только под таблицу в 4 колонки.

PHP:
$rowspan;


$numrow = 0;


$keysave;

$linkm = mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_select_db($dbName) or die("Could not select database");


require_once 'simple_html_dom.php';

$data = file_get_html($link);
$array = array();

foreach($data->find('table',0)->children(0)->children() as $trs) {
$item = array();

	foreach($trs->children() as $key => $tds) {
		if($numrow > 1 && $keysave == $key) {
			if (!($rowspan->find('img',0))) { 
				$item[$keysave] = $rowspan->plaintext; 
			} else { 
				$item[$keysave] = $rowspan->find('img',0)->src; 
			}
			
			$numrow -= 1;
		}
			
			
		$i = 0;
		while($i < 4) {
			if(!$item[$i]) {
				if (!($tds->find('img',0))) {
					$item[$i] = $tds->plaintext; 
				} else { 
					$item[$i] = $tds->find('img',0)->src; 
				}
			break;
			}
			$i++;
		}
		
		if($tds->rowspan) {
				$numrow = $tds->rowspan;
				$rowspan = $tds;
				$keysave = $key;
			}
	}
ksort($item);
array_push($array, $item);

}

print_r ($array);
 
Сверху