Quel que soit le caractère compris entre a et z, quel est le moyen le plus efficace d’obtenir la prochaine lettre de l’alphabet en utilisant PHP?
Réponses
Trop de publicités?A mon avis, le moyen le plus efficace consiste à incrémenter la variable chaîne.
$str = 'a';
echo ++$str; // prints 'b'
$str = 'z';
echo ++$str; // prints 'aa'
Comme vu incrémenter 'z'
donner 'aa'
si vous ne le souhaitez pas mais souhaitez plutôt réinitialiser pour obtenir un 'a'
vous pouvez simplement vérifier la longueur de la chaîne résultante et si son >1
réinitialise.
$ch = 'a';
$next_ch = ++$ch;
if (strlen($next_ch) > 1) { // if you go beyond z or Z reset to a or A
$next_ch = $next_ch[0];
}
Et bien, cela dépend exactement ce que vous voulez faire avec les "cas limites". Quels résultats attendez-vous quand le personnage est - z
ou Z
? Voulez-vous la lettre suivante dans le même cas, ou tout simplement la lettre suivante, période?
Sans connaître la réponse à cette question, pour la base de cas, il vous suffit de faire ceci:
$next_character = chr(ord($current_character) + 1);
Mais quand vous êtes à l' Z
cela vous donnera [
, et z
vous donnera {
, selon les valeurs ASCII.
Édité par commentaire:
Si vous avez besoin le caractère suivant de la même affaire, vous pouvez probablement ajouter de simples vérifications après la ligne ci-dessus:
if ($next_character == '[')
$next_character = 'A';
else if ($next_character == '{')
$next_character = 'a';
Ce sont des opérations très simples, j'ai vraiment ne vous inquiétez pas à propos de l'efficacité dans un cas comme celui-ci.
Que diriez-vous d'utiliser ord () et chr () ?
<?php
$next = chr(ord($prev)+1);
?>