Tableau a deux dimension /doublons

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
Configuration: Windows XP
Firefox 2.0.0.14

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. 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]);
    } 
    
    
    1. 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 ?
      1. $tab[$i] n'est pas une chaine array mais un array
    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");
      }
      1. $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]
        }
        1. Excuses mais la solution que je t'ai proposée ne supprime les doublons que dans le mêm "sous array"