Tableau a deux dimension /doublons

pontarose Messages postés 151 Statut Membre -  
Alain_42 Messages postés 5413 Statut Membre -
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 5413 Statut Membre 894
 
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
Mook
 
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 5413 Statut Membre 894
 
$tab[$i] n'est pas une chaine array mais un array
0
pontarose Messages postés 151 Statut Membre 2
 
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 151 Statut Membre 2
 
$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 5413 Statut Membre 894
 
Excuses mais la solution que je t'ai proposée ne supprime les doublons que dans le mêm "sous array"
0