Trouver des doublons et trier une chaîne de chiffres

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Trouver des doublons et trier une chaîne de chiffres

Re: Trouver des doublons et trier une chaîne de chiffres

par bboynono » 04 oct. 2011, 16:17

Merci beaucoup, ça marche !!!

Re: Trouver des doublons et trier une chaîne de chiffres

par soycd » 03 oct. 2011, 17:36

T'as oublié l'explode :wink:
$lesChiffres= explode(',', '12,21,21,1,1,5,6,1,5');
$tri = array_count_values($lesChiffres);
foreach( $tri as $chiffre => $occurence )
    echo $chiffre . ' => ' . $occurence . ' fois' . "\n";
array() sert à définir un ... array :mrgreen:
$lesChiffres = array(12,21,21,1,1,5,6,1,5); //Les quotes ne sont pas nécessaires pour des numériques

Re: Trouver des doublons et trier une chaîne de chiffres

par bboynono » 03 oct. 2011, 17:23

Merci pour vos réponse, mais je ny arrive toujours pas.
Voila mon script:
<?php
$leschiffres = "12,21,21,1,1,5,6,1,5";
$resultat = array($leschiffres);
$tri = array_count_values($resultat);
print_r($tri);

?> 
qui me donne :

Code : Tout sélectionner

Array ( [12,21,21,1,1,5,6,1,5] => 1 )
et je voudrai :

Code : Tout sélectionner

1 (3 fois) 5 (2 fois) 6 (1 fois) 12 (1 fois) 21 (1 fois)
Désolé d'être aussi nul, je débute.
Merci pour votre réponse

Re: Trouver des doublons et trier une chaîne de chiffres

par macgawel » 03 oct. 2011, 16:20

ça ne marche pas ???
C'est un peu court...

- Plantage ? Quel est le message d'erreur ?
- Ca fonctionne mais le résultat ne correspond pas à celui attendu ?
- Autre - préciser...

Je lis le manuel :
array array_count_values ( array $input )
Retourne un tableau contenant les valeurs du tableau input comme clés et leur fréquence comme valeurs.
Si ça retourne un tableau, comme echo attend une chaîne ça ne risque pas de fonctionner #-o

Ce qu'il faut faire :
1. Transformer ta chaîne en tableau (tu fais ça bien).
2. Utiliserarray_count_values pour récupérer un tableau qui contient "les valeurs du tableau input comme clés et leur fréquence comme valeurs".
Tu peux faire un print_r($resultat) pour voir comment le tableau de sortie est constitué.
3. Il faudra ensuite le trier. Pour ça, tu peux utiliser arsort() pour trier le tableau suivant l'ordre décroissant des valeurs.
4. Il ne te restera plus qu'à utiliser le tableau...Et là, ça dépend de ce que tu veux faire !

Re: Trouver des doublons et trier une chaîne de chiffres

par Mazarini » 03 oct. 2011, 16:16

C'est gentil le "Ca ne marche pas" mais pas très explicite.

Je te conseille de lire la doc :http://php.net/manual/fr/function.array ... values.php
Au moins le premier exemple.

Re: Trouver des doublons et trier une chaîne de chiffres

par bboynono » 03 oct. 2011, 16:01

Et puis, un autre facteur, la valeur $resultat change.
Merci pour votre réponse car je suis vraiment embété.

Re: Trouver des doublons et trier une chaîne de chiffres

par bboynono » 03 oct. 2011, 15:56

Merci pour ta réponse mais je suis novice en php.
J'essaye :

<?php
$resultat = "12 45 1 12 23 5 5 12"
$decouper = explode(" ", $resultat);
$tri = array_count_values($decouper);

echo $tri;

?>

ça ne marche pas ???
Merci pour ta réponse

Re: Trouver des doublons et trier une chaîne de chiffres

par macgawel » 03 oct. 2011, 15:44

Bonjour.

array_count_values devrait faire ton bonheur :wink:

Trouver des doublons et trier une chaîne de chiffres

par bboynono » 03 oct. 2011, 15:24

Bonjour à tous,
voila mon problème, j'ai eu chaîne résultat de ce type:

$resultat = "12 45 1 12 23 5 5 12"


Et je voudrai obtenir un tri croissant de ces nombres selon le nombre de fois ou il apparaissent.
Exemple pour $resultat:

12 (3 fois), 5 (2 fois), 1, 23, 45

Merci de votre aide