使用PHP获取字母表中下一个字母的最有效的方法
给定任何字符从一个到Z,什么是最有效的方式来获取字母下一个字母使用PHP?
在我看来,这样做的最有效的方法就是增加stringvariables。
$str = 'a'; echo ++$str; // prints 'b' $str = 'z'; echo ++$str; // prints 'aa'
如所看到的增加'z'
给予'aa'
如果你不想要这个,而是想重新设置一个'a'
你可以简单地检查结果string的长度,如果>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时想做什么,但是你有几个select:
$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); ?>
由于在这种情况下我只关心小写字母,所以我将根据下面的答案使用下面的代码:
function nextLetter(&$str) { $str = ('z' === $str ? 'a' : ++$str); }
感谢您的帮助,伙计们!
$val = 'z'; echo chr((((ord($val) - 97) + 1) % 26) + 97);
好,易于 :-)
创build所有字母的数组,search现有的字母并返回其下一个字母。 如果你到达最后一个字母返回第一个字母。