Ajout d'éléments à une liste dans un tableau associatif php
Posté : 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 :
jusque là tout fonctionne bien.
Mais quand je le met en pratique dans mon script :
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
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;
}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
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