cod*_*ict 117
在我看来,最有效的方法是增加字符串变量.
$str = 'a';
echo ++$str; // prints 'b'
$str = 'z';
echo ++$str; // prints 'aa'
Run Code Online (Sandbox Code Playgroud)
正如所看到的增加'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];
}
Run Code Online (Sandbox Code Playgroud)
nic*_*ckf 16
这取决于你点击Z时你想做什么,但你有几个选择:
$nextChar = chr(ord($currChar) + 1); // "a" -> "b", "z" -> "{"
Run Code Online (Sandbox Code Playgroud)
您还可以使用PHP的range()功能:
$chars = range('a', 'z'); // ['a', 'b', 'c', 'd', ...]
Run Code Online (Sandbox Code Playgroud)
那么,这取决于你想要对"边缘情况"做些什么.当角色是z或时,你期望什么结果Z?你想要同一案件的下一个字母,还是下一个字母,期间?
在不知道答案的情况下,对于最基本的情况,你可以这样做:
$next_character = chr(ord($current_character) + 1);
Run Code Online (Sandbox Code Playgroud)
但是当你在Z这时会给你[,并z会{根据ASCII值给你.
根据评论编辑:
如果你需要同一个案例的下一个字符,你可以在上面一行之后添加简单的检查:
if ($next_character == '[')
$next_character = 'A';
else if ($next_character == '{')
$next_character = 'a';
Run Code Online (Sandbox Code Playgroud)
这些都是非常简单的操作,我真的不担心这样的情况下的效率.
| 归档时间: |
|
| 查看次数: |
38003 次 |
| 最近记录: |