如何在php中增加一个完整字符串。像abc
应该转化为bcd
。我试着
$i="abc";
$i++;
echo $i; //abd
但是它只增加最后一个字符
我搜索了很多这样的问题,但我没有找到任何解决方案。
您可能已经阅读过如何在PHP中增加像数字一样的字母?
但是,$i++
只作用于单个字符。
所以要得到想要的输出,我们可以简单地:
- 使用
str_split()
将字符串转换为数组 - 循环使用
foreach()
,改变,或者在我的情况下创建一个新的输出- 使用
++
'Increase' char
- 使用
<?php
$test = 'abc';
$output = '';
foreach (str_split($test) as $char) {
$output .= ++$char;
}
echo $output;
上面的代码将产生:
bcd
,你可以在这个在线演示中尝试。
更紧凑的解决方案包括
array_map
作为循环- 一个简短的函数符号
implode()
将数组缝合回字符串
<?php
$test = 'abc';
$result = implode(array_map(fn ($c) => ++$c, str_split($test)));
echo $result;
上网试试!
我们可以通过以下3个步骤做到这一点:
- 使用php的内置函数ord()将每个字符转换为无符号整数。
- 将此整数增加一(或其他数字)。
- 将其转换回字符(使用php的内置函数chr())
$test = 'abc';
$output = '';
foreach (str_split($test) as $char) {
$output .= chr(ord($char)+1);
}
echo $output;
看到演示