Créer et remplir un tableau array à 2 colonnes avec un boucle for plus trier la [Résolu]

Messages postés
55
Date d'inscription
mardi 22 juillet 2008
Dernière intervention
23 avril 2012
- 26 mars 2012 à 16:11 - Dernière réponse :
Messages postés
55
Date d'inscription
mardi 22 juillet 2008
Dernière intervention
23 avril 2012
- 27 mars 2012 à 02:14
Bonjour,

Ce que j'essaie de réaliser c'est de Créer et remplir un tableau array à 2 colonnes avec un boucle for plus trier la premier colonnes.
Pour mieux comprendre, je cherche à savoir quels sont les mots les plus utilisés dans une phrase.

Voici ce qe j'ai commencer :

//$newphrase : une chaine de caractère

$nombre_mot = str_word_count($newphrase); 
$mots = explode(' ', $newphrase);


$matrice = 'array(';

for($y=0; $y<$nombre_mot ; $y++){
if(!empty($mots[$y])){

$iCpt[$y] = substr_count ($newphrase, $mots[$y]);

$matrice .= '"$iCpt[$y]"=>"$mots[$y]",';

};
};
//Fin du tableau
$matrice .= '"0"=>"rien"';
//Trier
asort($matrice);

//Afficher
foreach($matrice as $num=>$mot_m)
echo $num.' fois : '.$mot_m; 


Il y a peut-être une autre méthode plus simple ? Vincej
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
1310
Date d'inscription
samedi 31 janvier 2009
Dernière intervention
5 juin 2013
- 26 mars 2012 à 21:21
3
Merci
Salut,

Il y a peut-être une autre méthode plus simple ?

Oui il y a plus simple. Enfin c'est surtout que manipuler une chaîne de caractère avec le code php pour faire un array... ça ne marche pas à moins de faire un eval, et dans tous les cas ça reste bien dégueulasse.

Sérieusement, relis bien la doc de la fonction str_word_count(), et en particulier son second paramètre. Avec ça tu seras en mesure de bien mieux extraire les mots de ta chaîne de caractères. Après ça il te suffis d'utiliser array_count_values() et le tour est joué. Ho, et penses à utiliser strtolower() sur ta chaîne avant toutes choses afin de ne pas traiter de manière différente les mots en fonction de la casse.

Bref, ça se fait en une seule ligne et avec 3 fonctions.

Merci TychoBrahe 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de TychoBrahe
Messages postés
55
Date d'inscription
mardi 22 juillet 2008
Dernière intervention
23 avril 2012
- 27 mars 2012 à 02:14
0
Merci
Merci !

Bidouiller ça marche qu'un moment.


Vincej
Commenter la réponse de vincej

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.