PHP Simple HTML DOM Parser: Seleccione solo DIVs con múltiples clases

Estaba buscando como loca y no encontré solución. El problema es simple.

Digamos que tengo 3 DIVs:

<div class="class1">
  <div class="subclass"> TEXT1 </div>
</div>

<div class="class2">
  <div class="subclass"> TEXT2 </div>
</div>

<div class="class1 class2">
  <div class="subclass"> TEXT3 </div>
</div>

Así que, muy simple. Solo quiero encontrar el TEXT3, que tiene tanto class1 como class2. Usando Simple HTML DOM Parser, parece que no consigo que funcione.

Esto es lo que intenté:

foreach($html->find("[class=class1], [class=class2]") as $item) {
$items[] =  $item->find('.subclass', 0)->plaintext;
}

El problema es, con

find("[class=class1], [class=class2]")

los está encontrando a todos, ya que la coma es como un OR, si dejo la coma, está buscando class2 anidado dentro de class1. Sólo estoy buscando un AND ...

EDITAR

Gracias a 19greg96 descubrí que

div[class=class1 class2]

funciona, el problema es que busca exactamente esos dos en ese orden. Digamos que tengo

<div class="class1 class2">
  <div class="subclass"> TEXT3 </div>
</div>

entonces funciona, y si tengo

<div class="class1 class2 class3">
  <div class="subclass"> TEXT3 </div>
</div>

funciona cuando coloco un asterisco, ya que busca la subcadena:

div[class*=class1 class2]

PROBLEMA

Sé que solo class1 y class3 están ahí, pero tal vez otros y en orden aleatorio. Eso todavía no funciona. ¿Alguna idea de cómo buscar A & B en un orden aleatorio? Así que eso

div[class=class1 class3]

trabaja con ese ejemplo?

Respuestas a la pregunta(4)

Su respuesta a la pregunta