Bonjour
Mon pote qui s'occupe des dévs PHP fait le pont et je me retrouve confronté à une bizzarerie que je ne comprends pas.
Le contexte :
J'ai un tableau temporaire contenant des noms ($table) du genre 0=>Riri 1=>Fifi 2=>Loulou.
J'ai d'autre part une chaine temporaire ($chaine) contenant le nombre de fois que l'un des noms a effectué une certaine action : par exemple 011122 signifie que 0 (Riri) l'a fait une fois, 1 (Fifi) l'a fait 3 fois, et 3 (Loulou) l'a fait 2 fois.
Le but est de lister combien de fois chacun a fait l'action concernée.
Donc
affiche bien
- 1
- 3
- 2
Si je récupère les clés du tableau pour incrémenter la valeur de substr_count en comptant le nombre de noms présents,
je devrais logiquement obtenir le même résultat puisque je ne fais que remplacer la valeur de clé par $i... mais c'est pas le cas.
Dans mon test en dév (4 noms dont 0 a fait 1 action, 1 a fait 2 actions, 2 a fait 4 actions et 3 a fait 6 actions => $chaine=0112222333333) j'obtiens
- 14
- 2
- 17
- 6
au lieu de
- 1
- 2
- 4
- 6
Depuis le début les résultats des valeurs non-impaires d'utilisateurs (0 et 2) sont fausses alors que la valeurs impaires (1 et 3) restent justes et je ne vois pas pourquoi.
Mon pote qui s'occupe des dévs PHP fait le pont et je me retrouve confronté à une bizzarerie que je ne comprends pas.
Le contexte :
J'ai un tableau temporaire contenant des noms ($table) du genre 0=>Riri 1=>Fifi 2=>Loulou.
J'ai d'autre part une chaine temporaire ($chaine) contenant le nombre de fois que l'un des noms a effectué une certaine action : par exemple 011122 signifie que 0 (Riri) l'a fait une fois, 1 (Fifi) l'a fait 3 fois, et 3 (Loulou) l'a fait 2 fois.
Le but est de lister combien de fois chacun a fait l'action concernée.
Donc
echo '<li> '.substr_count($chaine, '0').'</li>';
echo '<li> '.substr_count($chaine, '1').'</li>';
echo '<li> '.substr_count($chaine, '2').'</li>';
affiche bien
- 1
- 3
- 2
Si je récupère les clés du tableau pour incrémenter la valeur de substr_count en comptant le nombre de noms présents,
$compte =count($table);
$i = '0';
for($i=0; $i<=($compte-1); $i++) {
echo '<li>'.substr_count($chaine, $i).'</li>';
}
je devrais logiquement obtenir le même résultat puisque je ne fais que remplacer la valeur de clé par $i... mais c'est pas le cas.
Dans mon test en dév (4 noms dont 0 a fait 1 action, 1 a fait 2 actions, 2 a fait 4 actions et 3 a fait 6 actions => $chaine=0112222333333) j'obtiens
- 14
- 2
- 17
- 6
au lieu de
- 1
- 2
- 4
- 6
Depuis le début les résultats des valeurs non-impaires d'utilisateurs (0 et 2) sont fausses alors que la valeurs impaires (1 et 3) restent justes et je ne vois pas pourquoi.