feiyuanqiu
2014-10-10 12:09:34 +08:00
又想了下,真是不觉得有必要上那么高大上的算法,如果数据在单表,直接下面这个代码就行了,如果是多表,给每个表一个单独标识加最前面就行
<?php
$i = 1000;
while ($i--) {
var_dump(_uniqId());
}
exit;
function _uniqId()
{
static $now = 100000000;
return _10262($now++);
}
function _10262($n)
{
$b = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, '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', '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');
$cn = $b[$n % 62];
if (($nn = floor($n / 62)) > 0) {
$cn .= _10262($nn);
}
return strrev($cn);
}