PHP: Simple Dom Parser Encuentra Nth Element Class Existe

Estoy usando el analizador PHP DOM simple para analizar la página HTML. Ahora me falta un punto particular de cómo encontrar la clase de elemento n debe ser una clase particular

Por ejemplo:

ONE TWO THREE
Apple Orange N/A
Apple N/A Banana

La mesa se ve así, así que estoy atravesando la mesa a través de tr

 foreach ($demo->find("tr") as $val) { if(is_object($val->find('td.null', 0)) { echo "FOUND"; } } 

Pero el bucle foreach anterior devuelve “ENCONTRADO” si td.null existe. Pero necesito encontrar si la 2da clase del elemento td es nula necesito volver como DOS, si la tercera clase del elemento del td es nula necesito volver como tres

Espero que entiendas que lo que estoy pidiendo, así que por favor ayúdame a encontrar la clase de elemento n es nulo

Primero, lo que haría es repetir las td ‘s a través de foreach. Para que pueda obtener la clave de número de índice en la que se encuentra. (Tenga en cuenta que, por supuesto, su indexación se basa en cero, por lo que en realidad comienza en 0 ).

Luego, dentro del ciclo interno, solo verifica si la clase es null , luego mapea con la palabra correspondiente 1 = one, 2 = two, etc..

Ejemplo aproximado:

 $map = array(1 => 'one', 2 => 'two', 3 => 'three'); foreach ($demo->find('tr') as $tr) { // loop each table row // then loop each td foreach($tr->find('td') as $i => $td) { // indexing starts at zero if($td->class == 'null') { // if its class is null echo $map[$i+1]; // map it to its corresponding word equivalent } } } 

Entonces, en este caso, esto generaría three y luego two . Dentro de la segunda fila de la mesa, el null aterriza en el tercero, dentro de la tercera fila cae en el segundo.

Es un dolor hacer cosas como esas con el html dom simple, si cambias a este podrás hacer cosas como:

 foreach($demo->find("td.null") as $td){ echo $td->index; } 

así como muchas otras cosas de estilo jquery que cabría esperar en una biblioteca de análisis moderna.