Tableau a deux dimension /doublons

pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   -  
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
Configuration: Windows XP
Firefox 2.0.0.14

4 réponses

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
  2. 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
    1. Alain_42 Messages postés 5413 Statut Membre 904
       
      $tab[$i] n'est pas une chaine array mais un array
      0
  3. pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   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
  4. pontarose Messages postés 150 Date d'inscription   Statut Membre Dernière intervention   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
    1. Alain_42 Messages postés 5413 Statut Membre 904
       
      Excuses mais la solution que je t'ai proposée ne supprime les doublons que dans le mêm "sous array"
      0