PHP-减少字符串ID
我在减少字符串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
// 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中有一个内置函数,但这已经足够好了;