已知一个用户的ID(ID是长整形)根据用户ID给用户生成一个唯一的邀请码(邀请码范围([a-z0-9])?代码实现!
字符a-z0-9刚好是36个。是否可以考虑直接将用户ID转换成一个36进制的数呢?
<?php
function createCode($userId)
{
static $sourceString = [
0,1,2,3,4,5,6,7,8,9,10,
'a','b','c','d','e','f',
'g','h','i','j','k','l',
'm','n','o','p','q','r',
's','t','u','v','w','x',
'y','z'
];
$num = $userId;
$code = '';
while($num)
{
$mod = $num % 36;
$num = (int)($num / 36);
$code = "{$sourceString[$mod]}{$code}";
}
//判断code的长度
if( empty($code[4]))
str_pad($code,5,'0',STR_PAD_LEFT);
return $code;
}
通过用户id生成邀请码
最新推荐文章于 2024-07-27 21:10:28 发布