[RESOLU] Ajout d'éléments à une liste dans un tableau associatif php

Petit nouveau ! | 2 Messages

01 août 2018, 10:18

Bonjour à tous,
J'écrit un code lors d'une exection de requête sql pour filtrer les résultats affichés et pris en compte.
J'utilise alors une technique de blacklist qui me semble adaptée aux circonstances.
Le principe est le suivant : si l'identifiant à déjà été listé je verifie que l'identifiant secondaire est différent. Si c'est le cas j'affiche l'élément et je "blacklist" son identifiant secondaire.
Voici le principe :

Code : Tout sélectionner

if (array_key_exists($primaryKey, $tabAsso)) { if (!in_array($secondaryKey, $tabAsso[$primaryKey])) { $tabAsso[$primaryKey][]=$secondaryKey; } }else{ //si la clée n'existe pas encore je l'ajoute et lui associe la clée secondaire actuelle. $asso[$primaryKey][]=$secondaryKey; }
jusque là tout fonctionne bien.
Mais quand je le met en pratique dans mon script :

Code : Tout sélectionner

if (array_key_exists($tclnId, $blacklist)){//ce tcln a-t-il été listé ? if (!in_array($iteration, $blacklist[$tclnId])) {//ce tcln existant provient-il de la même itération ? $blacklist[$tclnId][]=$iteration; //si elle n'existe pas on l'ajoute à la liste de la clé------------------------------------ERROR //une erreur se produit à la ligne ci-dessus et je ne comprend pas pourquoi. }else{ $print=false; } }//end if array key else{ $blacklist[$tclnId][]=$iteration;//si la clée n'existe pas je l'initialise en lui attribuant une liste de valeurs //contenant l'iteration actuelle. }//end if not in black list
d'après mon débug l'erreur ne vient que de la ligne annotée.
Pour la ligne où se produit l'erreur qui stop l'affichage du reste du document (même après le tableau) je ne comprend pas d'où vient l'erreur. J'ai ré-écrit la ligne plusieurs fois pour être sur du nom des variables et de la syntaxe.

Merci d'éclairer ma lanterne de jeune débutant :priere:

Mammouth du PHP | 1967 Messages

01 août 2018, 14:53

Peut on voir le texte de l'erreur ?

Si elle est du type NOTICE, pas d'inquiètude c'est juste car tu n'initie pas un tableau dans ton tableau blacklist mais tu l'utilise comme telle
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Petit nouveau ! | 2 Messages

01 août 2018, 16:06

merci pour ta réponse Spols.

J'ai trouvé. Un collègue m'a fait rajouter du débug en quantité et c'est bien utile. Mon erreur est que je modifie blacklist[TCLN_ID] plus loin dans le code en lui attribuant une string !!!
Leçon à retenir avoir une vue globale de son code et ne pas lésiner sur le débug.
J'etais sûr que l'erreur vennait d'une ligne et j'en ai oublié le reste du code.