As stated in the question, phpQuery
implements Iterator
.
So I'd say this is probably the cleanest way you can do what you want:
$doc = new phpQuery($html);
$elements = $doc['div span'];
foreach($elements as $span){
$key = pq($span)->text();
$elements->next();
$value = pq($elements->current())->text();
}