php字符串增加1如何实现

后端开发   发布日期:2023年06月11日   浏览次数:438

这篇“php字符串增加1如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php字符串增加1如何实现”文章吧。

php字符串增加1的实现方法:1、新建php示例文件;2、创建“function inc($s) {...}”方法;3、通过“while ($n-- > 0) {$s = inc($s);}”计算除去最后一个字符的字符串,然后进位即可。

php 数字字符串 +1 操作 累加 加一 (不溢出)

* inc.php

  1. <?php
  2. function inc($s) {
  3. if (empty($s)) {return "1";}
  4. if ( ! isset($s[1]) ) {
  5. $code = ord($s[0]) + 1;
  6. if ($code <= ord("9")) {
  7. return chr($code);
  8. }
  9. return "10";
  10. }
  11. $n = strlen($s);
  12. $code = ord($s[$n-1]) +1;
  13. if ($code <= ord("9")) {
  14. return substr($s, 0, $n-1).chr($code);
  15. }
  16. return inc(substr($s, 0, $n-1))."0";
  17. }
  18. $s = "2147483647";
  19. $n = 10000;
  20. while ($n-- > 0) {
  21. // printf("%s
  22. ", $s);
  23. $s = inc($s);
  24. }
  25. printf("%s
  26. ", $s); // "2147493647"

递归,如果需要进位, 先计算除去最后一个字符的字符串, 最后一个字符置为'0'; 单个数字字符0-9显然好处理。

* test:

  1. <?php
  2. $m = 2147483647;
  3. $n = 10000;
  4. while ($n-- > 0) {
  5. // printf("%d
  6. ", $m);
  7. $m++;
  8. }
  9. printf("%d
  10. ", $m);

比较结果一致

* add2.php // 遍历1-4位大写字母

  1. <?php
  2. function add($s) {
  3. if (empty($s)) {return "A";}
  4. if ( ! isset($s[1]) ) {
  5. $code = ord($s[0]) + 1;
  6. if ($code <= ord("Z")) {
  7. return chr($code);
  8. }
  9. return "AA";
  10. }
  11. $n = strlen($s);
  12. $code = ord($s[$n-1]) +1;
  13. if ($code <= ord("Z")) {
  14. return substr($s, 0, $n-1).chr($code);
  15. }
  16. return add(substr($s, 0, $n-1))."A";
  17. }
  18. $s = "";
  19. do {
  20. $s = add($s);
  21. printf("%s
  22. ", $s);
  23. } while ($s != "ZZZZ");

以上就是php字符串增加1如何实现的详细内容,更多关于php字符串增加1如何实现的资料请关注九品源码其它相关文章!