Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-减少字符串ID_Php_String - Fatal编程技术网

PHP-减少字符串ID

PHP-减少字符串ID,php,string,Php,String,我在减少字符串ID时遇到问题。情况如下: // given $row[0]['orderid'] = "ORD00389" (varchar) $nextID = $row[0]['orderid']; $prevID = $row[0]['orderid']; $nextID++; // echo 'ORD00390' $prevID--; // echo 'ORD00388' 到目前为止,我学到的是这段可爱的话: PHP在处理算术运算时遵循Perl的约定 关于字符变量而不是C。例如,在PH

我在减少字符串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 ) );

我认为你应该使用正则表达式来获取数字。感谢你的回复,我认为Galen已经知道了;或者$id_num=intval substr$prevID,3;虽然我希望在PHP中有一个内置函数,但这已经足够好了;