Si j'ai bien compris, tu veux que les lignes en H3 ne soit affichées qu'une seule fois, donc ne pas les afficher si elles ont déjà été affichées :
Il suffit de stocker la ligne H3 dans une variable temporaire et de tester si la nouvelle ligne H3 est équivalente à chaque fois.
Mais je ne suis pas sûr de bien comprendre parce que j'ai l'impression que tu as des doublons pour chaque groupe (ligne H3 + lignes des zones / instances).
Et donc il faudrait plutôt regarder du côté d'un GROUP BY en SQL, chais pas ça dépend de ce que tu veux.
Edit : erf powned, trop lent...
Il suffit de stocker la ligne H3 dans une variable temporaire et de tester si la nouvelle ligne H3 est équivalente à chaque fois.
$ligne_H3_precedente = "";
foreach ($instances as $listeInstances) :
$ligne_H3 = '<h3>'. $listeInstances->nom_map .' - '. $listeInstances->nom_zone .'</h3>';
if ($ligne_H3 != $ligne_H3_precedente)
echo $ligne_H3;
$ligne_H3_precedente = $ligne_H3;
for($i = 0;$i < sizeof($instances); $i++)
{
if ($instances[$i]->nom_zone === $listeInstances->nom_zone) {
echo $instances[$i]->nom_instance .', '. $instances[$i]->nom_zone .'';
}
}
endforeach;
Mais je ne suis pas sûr de bien comprendre parce que j'ai l'impression que tu as des doublons pour chaque groupe (ligne H3 + lignes des zones / instances).
Et donc il faudrait plutôt regarder du côté d'un GROUP BY en SQL, chais pas ça dépend de ce que tu veux.
Edit : erf powned, trop lent...