Tableau indéxé numériquement et doublon

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. 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
    1. 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
      1. Bon, alors essaie de remplacer
        if (!array_search($sunite, $tab))
        par
        if (array_search($sunite, $tab) === False)
        0