Самый эффективный способ получить следующую букву в алфавите с помощью PHP
учитывая любой символ от a до z, каков наиболее эффективный способ получить следующую букву в алфавите с помощью PHP?
7 ответов:
самый эффективный способ сделать это в мой мнение просто прирастить строковой переменной.
$str = 'a'; echo ++$str; // prints 'b' $str = 'z'; echo ++$str; // prints 'aa'
как видно приращение
'z'
дать'aa'
Если вы не хотите этого, но вместо этого хотите сбросить, чтобы получить'a'
вы можете просто проверить длину результирующей строки и если его>1
сброс.$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]; }
Это зависит от того, что вы хотите сделать, когда вы нажмете Z, но у вас есть несколько вариантов:
$nextChar = chr(ord($currChar) + 1); // "a" -> "b", "z" -> "{"
вы также можете использовать PHP
range()
функция:$chars = range('a', 'z'); // ['a', 'b', 'c', 'd', ...]
Ну, это зависит от того, что именно вы хотите сделать с "крайние случаи". Какой результат вы ожидаете, когда персонаж
z
илиZ
? Вы хотите следующую букву тот же случай, или просто следующее письмо, точка?не зная ответа на это, для самого основного случая, вы можете просто сделать это:
$next_character = chr(ord($current_character) + 1);
но когда ты на
Z
это даст вам[
иz
даст вам{
, согласно ASCII ценности.
отредактировано в соответствии с комментарием:
Если вам нужен следующий символ того же случая, вы, вероятно, можете просто добавить простые проверки после строки выше:
if ($next_character == '[') $next_character = 'A'; else if ($next_character == '{') $next_character = 'a';
это очень простые операции, я бы не беспокоиться об эффективности в таком случае.
Как насчет использования ord () и chr ()?
<?php $next = chr(ord($prev)+1); ?>