相对于字母位置增加php中的字符的工作方式如下:
$a = 'a';
++$a;
echo $a;
Run Code Online (Sandbox Code Playgroud)
输出为'b'
但是,是否可以将位置增加倍数,例如10.
$a = 'a';
$a += 2;
echo $a;
Run Code Online (Sandbox Code Playgroud)
这输出一个不是'c'的整数
您可以使用ord()将字符转换为ASCII值,递增/递减该值,然后使用chr()将其转换回字符:
$a = 'a';
$num = 2;
$a = chr(ord($a)+$num);
echo $a;
// outputs c
Run Code Online (Sandbox Code Playgroud)
ord - 返回字符
chr的 ASCII值- 返回特定字符
如果您希望增量/减量包围超过的值,z则可以使用:
$a = 'a';
$num = 28;
echo chr((26 + (ord($a)+$num-97)) % 26 + 97);
// outputs c
Run Code Online (Sandbox Code Playgroud)
注意:由于负数的php模数返回负数,这将无效或$num值<-26替代解决方案包括使用此处gmp_mod提到的.
希望这可以帮助!