Самый эффективный способ получить следующую букву в алфавите с помощью 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); ?>