Chaine de caracteres

Résolu
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 - 6 mars 2005 à 21:32
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 - 7 mars 2005 à 21:39
Bonsoir,

Je cherche une fonction permettant de faire un tableau avec une chaine de caracteres.

De sorte que j'obtienne :



$chaine = 'aaabacddc';

Array
(
[a] => 3
[b] => 1
[a] => 1
[c] => 1
[d] => 2
[c] => 1
)


De sorte que cela fasse aaa b a c dd c
Existe t-il une fonction qui permette cela ? Ou comment le faire (regex ?) ?
<hr size="2" width="100%">Si ma reponse te convient, merci de l'accepté !

4 réponses

JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
7 mars 2005 à 21:39
Voila si ca peux aider qqun !!



function incremente($chiffre) {

$tableau = array();

$e = 0;
$ch decoupe(strtr($chiffre, array(' '> '')));

for( $i=0 ; $i<count($ch) ; $i++) {

if( isset($ch[$i-1]) AND $ch[$i] == $ch[$i-1]) {

$tableau[$e-1][1]++;

} else {

$tableau[$e] = array($ch[$i], 1);

$e++;

}

}



return $tableau;

}

<hr size="2" width="100%">Si ma reponse te convient, merci de l'accepté !
3
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
6 mars 2005 à 21:33
Voila mon bout de code :

<?php



function decoupe($chaine) {

$reste = array();

$nb = strlen($chaine); // On compte le nombre de chiffre

for( $i=0 ; $i<$nb ; $i++ ) { // On fait une boucle

$reste[] = substr($chaine, $i, 1); // On prend chiffre par chiffre

}

return $reste; // On retourne le tout

}



function incremente($chiffre) {

$table = array();

foreach( decoupe($chiffre) as $key=>$val ) { // On decompose l'array retourné par decoupe();

$table[$val] = substr_count($chiffre, $val);;

}



return $table;

}



?>

<hr size="2" width="100%">Si ma reponse te convient, merci de l'accepté !
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 mars 2005 à 12:55
Hello jojo,

$chaine = 'aaabacddc';
$tableau = str_split($chaine);
$tableau_valeurs = array_count_values($tableau);
print_r($tableau_valeurs);

devrait suffire.
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
7 mars 2005 à 13:18
Merci malam, mais ce n'est pas ça !
Deja pour str_split en PHP4 :
<!--StartFragment --> function strsplit($str){
if (preg_match_all("/[A-Za-z0-9]/", $str, $split)) {
return $split[0];
} else {
return false;
}
}

Mais moi je cherche a lister chaque lettre, mais si la suivante est la meme, on compte ces x lettre comme une. ( Oula pas claire )

Array
(
[0] => aaa
[1] => b
[2] => a
[3] => c
[4] => dd
[5] => c
)

<HR width="100%" SIZE=2>
Si ma reponse te convient, merci de l'accepté !
0
Rejoignez-nous