Tableau a deux dimension /doublons

Fermé
pontarose Messages postés 150 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 23 avril 2010 - 14 mai 2008 à 13:28
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 14 mai 2008 à 17:43
Bonjour,
Je suis dans le cas d'un tableau a deux dimension ($tab) et j'aimerais pour enlever les doublons ($tab_final)

for($i=0; $i<count($tab);$i++)
{
if(!in_array(".$tab[$i][0].",$tab_final))
$tab_final[]=array("".$tab[$i][0]."","".$tab[$i][1]."")
}

Mon problème est que j'ai toujours les doublons et je ne comprend pas pourquoi. Peut-on m'orienter
A voir également:

4 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
14 mai 2008 à 16:29
Salut,

il existe une fonction php qui supprime les doublons c'est array_unique(...)

$tab_mod=array();

for($i=0; $i<count($tab);$i++)
{
$tab_mod[$i]=array_unique($tab[$i]);
} 

0
Bon alors avant de poster on vérifie, bon pas grav, on fait tous des erreurs.

Donc array_unique ne marche pas avec des tableaux a deux dimensions car alors php va comparer les chaine 'Array', et retourne un tableau avec le premier élément uniquement.

Quelqu'un a une solution ?
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
14 mai 2008 à 17:40
$tab[$i] n'est pas une chaine array mais un array
0
pontarose Messages postés 150 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 23 avril 2010 2
14 mai 2008 à 17:19
Merci de ta réponse Alain,mais en utilisant array_unique j'obtiens le même résultat que précedement c'est à dire que j'ai toutjours mes doublons. Le nombre d'élemnts dans mon tableau $tab_mod est toujours le même!

for($i=0; $i<count($tab);$i++)
{
$tab_mod[$i]=array_unique($tab[$i]);
}

print(count($tab_mod));

//pour vérifier
for($l=0;$l<count($tab_mod);$l++)
{
//print("".$tab_mod[$l]."\n");
}
0
pontarose Messages postés 150 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 23 avril 2010 2
14 mai 2008 à 17:24
$tab_mod=array();
for($i=0; $i<count($tab);$i++)
{
$tab_mod[$i]=array_unique($tab[$i]);
}

print(count($tab_mod));

//pour vérifier
for($l=0;$l<count($tab_mod);$l++)
{
//print("".$tab_mod[$l][0]."\n");//je trouve bizarre le fait d'ajouter [0]
}
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
14 mai 2008 à 17:43
Excuses mais la solution que je t'ai proposée ne supprime les doublons que dans le mêm "sous array"
0