通過使用者id生成邀請碼
阿新 • • 發佈:2018-12-10
已知一個使用者的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;
}