Page 1 sur 1

alphabet

Posté : 25 juin 2014, 21:11
par nathalie1
Bonjour
comment on peu trouver dans une phrase le nombre de "a" de "c" de"t" .....

Merci

Re: alphabet

Posté : 25 juin 2014, 22:43
par moogli
salut,

avec substr_count
il y a aussi count_chars qui couplé à la fonction ord devrait aussi faire l'affaire (de façon plus simple et efficace).
Petit bémol ne fonctionne pas avec utf-8 (donc exit les caractères accentués par exemple) et pas d'équivalent dans l'extension mb string


@+

Re: alphabet

Posté : 29 juin 2014, 17:40
par sirakawa
Une idée :
<?PHP
function explose($texte)
{
	mb_internal_encoding("utf-8");
	$explose = array ();
	while ($texte != "")
	{
		$lettre = mb_substr($texte , 1 , 1);
		$explose [] = $lettre;
		$texte = mb_substr($texte, 1);
}

return $explose;
}
$phrase = "Le chat est arrivé";
$delimiter = array( " ",",",".","'","\"","|","\\","/",";",":");
$phrase = str_replace($delimiter, $delimiter[0], $phrase);
$phrase = explose($phrase);
$res = array_count_values($phrase);
print_r($res);

?>

Re: alphabet

Posté : 29 juin 2014, 23:05
par Elie

Re: alphabet

Posté : 30 juin 2014, 09:26
par moogli
@Elie : merci de ta participation, mais lire les autres réponse c'est bien aussi :mrgreen: :mrgreen:

Re: alphabet

Posté : 01 juil. 2014, 16:37
par ynx
Salut,

Pour l'équivalent de count_chars() en UTF-8, voir le premier commentaire de la doc ;) (http://fr2.php.net/manual/fr/function.c ... php#107336) :
<?php
/**
* Counts character occurences in a multibyte string
* @param string $input UTF-8 data
* @return array associative array of characters.
*/
function mb_count_chars($input) {
    $l = mb_strlen($input, 'UTF-8');
    $unique = array();
    for($i = 0; $i < $l; $i++) {
        $char = mb_substr($input, $i, 1, 'UTF-8');
        if(!array_key_exists($char, $unique))
            $unique[$char] = 0;
        $unique[$char]++;
    }
    return $unique;
}

$input = "Let's try some Greek letters: αααααΕεΙιΜμΨψ, Russian: ЙЙЫЫЩН, Czech: ěščřžýáíé";
print_r( mb_count_chars($input) );
//returns: Array ( [L] => 1 [e] => 7 [t] => 4 ['] => 1 [s] => 5 [ ] => 9 [r] => 3 [y] => 1 [o] => 1 [m] => 1 [G] => 1 [k] => 1 [l] => 1 [:] => 3 [α] => 5 [Ε] => 1 [ε] => 1 [Ι] => 1 [ι] => 1 [Μ] => 1 [μ] => 1 [Ψ] => 1 [ψ] => 1 [,] => 2 [R] => 1 [u] => 1 [i] => 1 [a] => 1 [n] => 1 [Й] => 2 [Ы] => 2 [Щ] => 1 [Н] => 1 [C] => 1 [z] => 1 [c] => 1 [h] => 1 [ě] => 1 [š] => 1 [č] => 1 [ř] => 1 [ž] => 1 [ý] => 1 [á] => 1 [í] => 1 [é] => 1 )
Bonne journée