2
<?php
 $s = "pa99";
 $s++;
 echo $s;
?>

上面的代码输出到“pb00”我想要的是“pa100”等等。

但如果它的“pa”,我希望它转到“pb”,它与增量运算符配合得很好。

4

3 回答 3

12

正如迈克尔所说,你正在尝试增加一个字符串 - 它不能那样工作(tm)。你想要做的是:

<?php
 $s = "pa"; //we're defining the string separately!
 $i = 99; //no quotes, this is a number
 $i++;
 echo $s.$i; //concatenate $i onto $s
?>

没有按照您要求的方式自动增加字符串(aa、ab 等)的方法。您可以将每个字母转换为 1-26 之间的数字并递增它们,然后在溢出时递增前一个。不过,这有点乱。

要将整数与字符串分开,请尝试以下操作:

PHP将字符串拆分为整数元素和字符串

于 2012-08-21T16:41:19.050 回答
4

从文档:

PHP 在处理字符变量而不是 C 的算术运算时遵循 Perl 的约定。例如,在 PHP 和 Perl 中 $a = 'Z'; $a++; 将 $a 变成 'AA',而在 C 中 a = 'Z'; 一个++;将 a 转换为 '['('Z' 的 ASCII 值是 90,'[' 的 ASCII 值是 91)。请注意,字符变量可以递增但不能递减,即使如此,也仅支持纯 ASCII 字符(az 和 AZ)。增加/减少其他字符变量没有效果,原字符串不变。

于 2012-08-21T16:40:22.250 回答
0
<?php

  $s_letter = substr($s,0,2);
  $s_number = substr($s,2,9);

  $s_letter++; $s_number++;

  $s_result = $s_letter.$s_number;

  echo $s_result;

?>
于 2012-08-21T16:43:56.573 回答