我使用以下方法在我们的网站上填写属性的ID:
function generateAgentRef($id,$length=5,$strPrefix='1'){
return $strPrefix . str_pad($id,$length,0,0);
}
基本上它将为前缀1,然后用0填充id,直到字符串达到$ length。
但是,我现在要求恢复这个过程。例如,如果我有以下ID:100650,100359,100651,100622,100112,100687,我如何获得ID,例如650,359,651,622,112,687?
希望这能解释我想要实现的目标。
数据库中的ID永远不会以0开头,所以我想迭代字符串的组件并检测我何时触及0以外的其他内容然后拆分字符串。
答案 0 :(得分:1)
从生成的ref中减去100000,如果长度为6个数字,它可以正常工作intval()
。
答案 1 :(得分:0)
尝试使用此功能 $ a = substr($ num,3);
这里$ num是你得到的id $ a将是您想要的数字,即100659缩短为659
答案 2 :(得分:0)
扩展您的初始功能
function getAgentId($id, $length = 5, $strPrefix = 1){
return $id - generateAgentRef(0, $length, $strPrefix);
}
$id = generateAgentRef(255);
echo $id, PHP_EOL; // 100255
echo getAgentId($id), PHP_EOL; //255