Aller au contenu

Comparaisons de Valeurs dans un tableau


Sujets conseillés

Posté

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 :)

Posté (modifié)

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:

Modifié par georges
Posté (modifié)

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 :)

Modifié par georges
Posté

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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...