【问题标题】:How to increment complete string in php?如何在php中增加完整的字符串?
【发布时间】:2021-11-09 21:39:35
【问题描述】:

如何在php中增加一个完整的字符串。像abc 应该转换为bcd。 我试过了

$i="abc";
$i++;
echo $i; //abd

但它只增加最后一个字符。

我搜索了很多这样的问题,但没有找到任何解决方案。

【问题讨论】:

  • 所以如果它适用于一个字符,也许尝试一个 循环 并增加每个字符?
  • 您希望 xyz 转换成什么? z 默认情况下会增加到 aa,但是如果你想让它旋转到 a,你需要做一些不同的事情。
  • 先生,如何将字符串增加两到三,例如我想将 hi 转换为“jk”
  • @Azad 您的实际问题是什么?您似乎在发布不同的问题并寻找不同的答案?

标签: php string increment


【解决方案1】:

你可能读过How to increment letters like numbers in PHP?

但是,$i++ 仅适用于单个字符。


所以要获得所需的输出,我们可以简单地:

  1. 使用str_split()将字符串转换为数组
  2. 使用 foreach() 循环遍历它们,更改,或者在我的情况下创建一个新输出
    1. 使用++'增加'字符
<?php

$test = 'abc';
$output = '';

foreach (str_split($test) as $char) {
    $output .= ++$char;
}

echo $output;

上面的代码会产生:

bcd

你可以try in this online demo


更紧凑的解决方案将涉及

<?php

$test = 'abc';
$result = implode(array_map(fn ($c) => ++$c, str_split($test)));

echo $result;

Try it online!

【讨论】:

  • 先生,如何将字符串增加两三个,例如我想将 hi 转换为“jk”
【解决方案2】:

我们可以通过以下 3 个步骤来做到这一点:

  1. 使用 php 的内置函数 ord() 将每个字符转换为无符号整数。
  2. 将此整数增加一(或其他数字)。
  3. 将其转换回字符(使用 php 的内置函数chr())。
$test = 'abc';
$output = '';

foreach (str_split($test) as $char) {
    $output .= chr(ord($char)+1);
}

echo $output;

See demo

【讨论】:

  • 先生,如何将字符串增加两三个,例如我想将 hi 转换为“jk”
  • @Azad:努力吧,解决方案摆在你面前!
  • 只需将$output .= chr(ord($char)+1); 中的数字1 替换为另一个数字,例如2。
  • “试试这个”并不是一个好的答案。你应该解释如何为什么这可以解决他们的问题。我推荐阅读,“How do I write a good answer?"。这可以帮助未来的用户学习并最终将这些知识应用到他们自己的代码中。当代码被解释时,你也可能会得到用户的积极反馈/赞成。
  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2012-04-09
  • 2010-12-29
  • 1970-01-01
  • 2013-10-09
  • 2023-03-15
  • 2012-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多