PHP - 减少字符串 ID


PHP - decrease a string ID

我在减少字符串 ID 时遇到问题。情况是这样的:

// given $row[0]['orderid'] = "ORD00389" (varchar)
$nextID = $row[0]['orderid'];
$prevID = $row[0]['orderid'];
$nextID++; // echo 'ORD00390'
$prevID--; // echo 'ORD00388'

到目前为止,我学到的是这段可爱的段落:

PHP 在处理算术运算时遵循 Perl 的约定 在字符变量而不是 C 上。例如,在 PHP 和 Perl 中 $a = "Z";$a++;将$a转换为"AA",而在 C 中 a = "Z";a++;变成 "["("Z"的 ASCII 值为 90,"["的 ASCII 值为 91)。请注意, 字符变量可以递增,但不能递减,即使如此 仅支持纯 ASCII 字符(a-z 和 A-Z)。 递增/递减其他字符变量不起作用, 原始字符串保持不变。

有没有有效的方法(内置函数)来减少 PHP 中的字符串?

如果每次你可以摆脱 ORD 时它都以 ORD 结尾,减去 1,然后将其重新组合在一起。

$id_num = intval( str_replace( 'ORD', '', $str ) );
$nextID = 'ORD' . ($id_num+1);
$prevID = 'ORD' . ($id_num-1);

如果它不是每次都以 ORD 开头,您可以替换所有非数字

$id_num = intval( preg_replace( '~'D~', '', $str ) );