Tableau indéxé numériquement et doublon

pontarose -  
Reivax962 Messages postés 3742 Statut Membre -
Bonjour,

Je remplis mon tableau indéxé numériquement à l'aide d'une boucle (via les données entrés dans un formulaire); J'obtiens ainsi une liste d'élement dans un tableau indéxé numériquement.
Comment faire pour repérer si j'ai des doublons dans cette liste?

Exemple: A1,B1,C1,A1
je compare tous les éléments de cette liste
si A1 est présent x fois
print A1 est un doublon

Voiçi mon script:
<?php
$tab=array();
for($i=1; $i<=$nb_proteine;$i++)
{
$sunite=$_POST['sunite'.$i]
$tab[]="$sunite";

}
?>

JE BLOQUE A CE NIVEAU
<?php
$nb=count($tab);
for($j=0; $j!=$nb;$j++)
{

if ($tab[$i]==$tab;
}
?>
Configuration: Windows XP
Firefox 2.0.0.7

3 réponses

  1. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

    Je te propose de tout faire en une seule fois : au moment d'ajouter un élément, tu ne le fais que s'il n'est pas déjà dans le tableau.
    Ce qui donne :
    <?php
       $tab=array();
       for($i=1; $i<=$nb_proteine;$i++)
       {
          $sunite=$_POST['sunite'.$i]
          if (!array_search($sunite, $tab))
             $tab[]=$sunite;
       }
    ?> 
    Xavier
    0
  2. pontarose
     
    Bonjour,
    Merci mais cela ne marche pas.

    Si je tape A1 et A1
    j'obtiens
    Array (
    [0]flècheA1
    [0]flècheA1
    )

    <?php
    $tab=array();
    for($i=1; $i<=$nb_proteine;$i++)
    {
    $sunite=$_POST['sunite'.$i]
    if (!array_search($sunite, $tab))
    {
    $tab[]=$sunite;
    }
    else
    {
    print("DOUBLON");
    }
    }

    print("<pre>");
    print_r("$tab");
    print("</pre>");

    ?>
    0
  3. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bon, alors essaie de remplacer
    if (!array_search($sunite, $tab))
    par
    if (array_search($sunite, $tab) === False)
    0