xpath('//table:table-row') as $row ){ $row_values = array(); foreach( $row->xpath('//table:table-cell/text:p') as $val ){ $row_values[] = trim(strip_tags((string)$val->asXml())); } /* Headers are halfway of the array */ $half = (sizeof($row_values)/2); $mangled_row = array(); $headers = array(); foreach( $row_values as $idx => $val ){ if( $idx<$half ) { $headers[] = $val; }else{ $header_key = $idx-$half; if( isset($headers[$header_key]) ) $mangled_row[$headers[$header_key]] = $val; } } $return[] = $mangled_row; } return $return; } ?>