dai un reset() all'array prima di passarlo al secondo ciclo while. Se tu usassi il foreach invece del while il puntatore dell'array si resetterebbe per conto suo.