Bonjour,
J'ai un problème d'unset sur un tableau lorsque les éléments du tableau sont eux même des tableaux.
Je m'explique, je fais un moteur de recherche pour la boite où je suis en stage.
Au retour de mes requêtes, je construis des tableaux qui ressemblent à ça :
Array (
[0] => Array ([id] => xxx[intitule] => Intitulé1[nbMotCle] => x)[1] => Array ([id] => xxx[intitule] => Intitulé2[nbMotCle] => x)...)
J'ai des doublons (car plusieurs requêtes sont contenues dans le même tableau). Pour les supprimer j'ai bien essayéMais il ne me laisse plus qu'une seule entrée vu que c'est toutes des tableaux...
Code : Sélectionner tout - Visualiser dans une fenêtre à part array_unique($monTab);
Je me suis donc fais une petite fonction
Elle marche plutôt pas mal vu qu'elle agit sur les bonnes entrées. Le problème c'est qu'elle ne les supprime vraiment pas du tableau elle les vide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 for ($i = 0; $i < count($monTab); $i++) { for ($j = 0; $j < count($monTab); $j++) { if($resultMetier[$i]['id'] == $resultMetier[$j]['id'] && $j != $i) { //unset($monTab[$i]['id']); //unset($monTab[$i]['intitule']); //unset($monTab[$i]['nbMotCle']); unset($monTab[$i]); } } }
Il devient comme ça (avec [0] une valeur que je veux garder, et [1] une valeur qui a été "unset") :
Array (
[0] => Array ([id] => xxx[intitule] => Intitulé1[nbMotCle] => x)[1] => Array ([intitule] =>[nbMotCle] => 0)...)
Il n'y a que la colonne 'id' qui est correctement supprimée.
Dans le code mit plus haut, j'ai mis des "unset" en commentaires, car comme ça ne marchait pas en faisant le "unset" sur l'entrée elle même, j'ai essayé sur les variables qui sont dedans, puis sur l'entrée, mais j'obtiens le même résultat. Également si j'"unset" la variable $i ou $j.
Donc je ne sais pas si ça vient de ma fonction ou du unset qui serait mal utilisé ou mal approprié dans ce cas là.
Merci
Partager