Jump to content
Sign in to follow this  
hellay

Comparaisons de Valeurs dans un tableau

Rate this topic

Recommended Posts

Bonjour,

j'ai un problème pour réussir une comparaison de diverses valeurs dans un tableau, je m'explique...

J'ai plusieurs valeurs dans un tableau, disons ( 5, 5, 9, 9, 15, 4)

Je veux savoir si il y a des cas ou une valeur existe plusieurs fois dans un tableau (dans mon exemple , 5 et 9 se répètent tous les deux deux fois), j'ai donc utilisé la fonction array_count_values, qui me sort :

$tab1 = array (5, 5, 9, 9, 15, 4);
$tab2 = array_count_values($tab1);

// me sortira donc :
Array
(
[4] => 1
[5] => 2
[9] => 2
[15] => 1
)

j'ai donc maintenant des valeurs utilisables parfaitement pour mes doubles etc...

mais si je veux savoir combien de fois j'ai une répétition (4 fois 2 valeurs identiques etc ( dans ce cas la d avoir 2 fois 2 valeurs ) y a t'il une méthode simple ? ( et pas de faire une série de plein de conditions sur 20 lignes :P )

car je ne peux pas réutiliser array_count_value, sinon il va me prendre en compte mes resultats pour 4 et 15 (alors que je veux uniquement les versions a 2 ou plus dans mon tableau)

merci d'avance des réponses, et si je n'ai pas été clair hésitez pas a me demander des détails :)

Share this post


Link to post
Share on other sites

salut,

dans ton exemple, on pourrait faire ensuite :

foreach ($tab2 as $key => $val)
{
if ($val > 1) {echo $key,': ',$val,'<br>';}
}

edit : j'ai dû relire ton post 3 fois pour comprendre ton souci.. donc mon code ne t'avancera pas trop, désolé :blush:

Edited by georges

Share this post


Link to post
Share on other sites

me revoilà après avoir testé :hypocrite:

$tab3 = array();
foreach ($tab2 as $key => $val)
{
if ($val > 1) {array_push($tab3,array("chiffre"=>$key,"fois"=>$val));}
}

for($i=0;$i<count($tab3);$i++)
{
echo $tab3[$i]['chiffre'],' apparaît ',$tab3[$i]['fois'],' fois<br>';
}

il te suffit donc de compter la "longueur" de ton tableau pour savoir combien de répétition tu as :)

Edited by georges

Share this post


Link to post
Share on other sites

Merci pour les bonnes infos et idées, ça marche parfaitement après l'avoir adapté et testé :thumbsup:

désolé pour les explications compliqués a la base, dur d expliquer un double de double :P

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...