[PHP] question niveau 5 ( sur 5 ) Array...

question niveau 5 ( sur 5 ) Array... [PHP] - Programmation

Marsh Posté le 18-06-2002 à 23:22:36    

comment tester
si tous les elements d un array sont differants
mais ( difficultée ) ils peuvents etre identique sur une seule valeure ( disons "0" pour l exemple )
 
en gros  
array("a","b","b","h" ) = NON
mais
array("a","b","0","0","i" ) = OUI
 
??


---------------
Perdu ? Vous êtes ici : --> *
Reply

Marsh Posté le 18-06-2002 à 23:22:36   

Reply

Marsh Posté le 19-06-2002 à 03:15:17    

s'il y avait pas ton histoire du 0, c facile...
 
if ( count( array_unique($tab) ) == count($tab) )
  echo "pas de valeur double";
else {
  echo "doublon détecté";
}
http://www.php.net/manual/en/function.array-unique.php
 
à la limite, tu recrées un nouveau tableau en testant si la valeur que tu vas y insérer n'est pas déjà présente (et en compatibilisant les 0 déjà insérés).
 
Tu trouveras certainement qq ch de bien sur php.net section array...


---------------
...oups kernel error...
Reply

Marsh Posté le 19-06-2002 à 03:37:36    

teste moi ça :)
il est tard, donc tu excuseras mes possibles erreurs...
 

Code :
  1. function array_unique0($tab){
  2.   $tab2= array();
  3.   for($i=0, $max=count($tab), $m=0; $i<$max; $i++, $m++){
  4.     $j=0;
  5.     while( $j<$m ){
  6.       if ($tab2[$j++]==$tab[$i] && ($tab[$i]!="0" && $cpt0<2) ){
  7.         return false;
  8.       }
  9.     }
  10.     if ($tab[$i]=="0" ) $cpt0++;
  11.     $tab2[]=$tab[$i];
  12.   }
  13.   return true;
  14. }


Message édité par ethernal le 19-06-2002 à 03:40:30

---------------
...oups kernel error...
Reply

Marsh Posté le 19-06-2002 à 04:03:46    

Il faut incontestablement passer par un for


---------------
.:coin:.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed