[RESOLU] Afficher variable que si différente de la précédente

Eléphanteau du PHP | 26 Messages

21 nov. 2022, 20:19

Hello !

Je m'entraîne sur une appli de meteo, voilà mon problème.

J'appelle tous les jours de mes prévisions, ce qui m'affiche bien les jours de toutes mes prévisions:
for ($i = 0; $i < 48; $i += 1) {
    $daydisplay[$i] = date("l", $json_apiweather->hourly[$i]->dt);
}
Maintenant j'aimerais afficher dans mon interface web que les jours qui ont changé, donc j'ai écrit ça:
for ($i = 0; $i < 48;) {
    if ($daydisplay[$i++] == $daydisplay[$i]) {
        $daydisplay[$i] =  null;
    }
}
En gros je dis que si le $daydisplay suivant et égal au $daydisplay précédent, alors il est égal à "null" et donc ne l'affiche pas.

Saut que ça ne fonctionne pas trop... Il affiche le même jour quand même toutes les 2 prévisions.

Merci d'avance pour votre aide :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

21 nov. 2022, 20:48

En fait, à chaque fois que tu appelles $i++ ça incrémente la variable $i donc ça ne peut pas marcher comme cela.

La solution est de créer une variable vide avant ta boucle, par exemple $daydisplay_precedent
Et à chaque passage dans ta boucle :
1) tu testes si la valeur courante de $daydisplay est égale à la valeur précédente, si c'est le cas tu n'affiches rien, sinon, tu l'affiche
2) tu mets dans la variable $daydisplay_precedente la valeur courante de $daydisplay
Quand tout le reste a échoué, lisez le mode d'emploi...