【发布时间】:2016-10-20 20:03:00
【问题描述】:
我需要在 PHP 中创建唯一的字母数字 ID,长度为 6 个字符。
虽然我找到了很多解决这个问题的答案,但我希望将字母定位在 ID 中的特定位置,例如 A1B2C3(第一个、第三个和第五个字符)。
对此我唯一的解决方案是创建 6 个“for”循环(a-z 和 0-9 * 3 次)并将输出插入到数组中,然后插入到 MySQL 表中。肯定不会重复,但是有没有更好的办法?
到目前为止我的代码是:
<?php
$id=array();
for($a='A';$a!='AA';$a++){
for($b=1;$b<=9;$b++){
for($c='A';$c!='AA';$c++){
for($d=1;$d<=9;$d++){
for($e='A';$e!='AA';$e++){
for($f=1;$f<=9;$f++){
$id[]=$a.$b.$c.$d.$e.$f;
}
}
}
}
}
}
foreach ($id as $value) {
echo "$value \n";
}
?>
【问题讨论】:
-
请包含示例数据、您迄今为止尝试过的代码以及您想要的结果的虚拟输出。
-
unique与什么相比,数据库?随机解决方案,eval.in/591689,虽然不是唯一的.. -
用我的代码更新了我的问题。从我的代码创建的结果开始,数据库开始为空,如此独特。使用上面的代码,我没有重复,但这是创建我的 id 的好方法吗?
-
一次要创建多少个ID?您的代码创建了很多 ID。
-
@bloodyKnuckles 起初我想要 20.000 个 ID,但是当使用这 20.000 个时,我想从我停止的 ID+1 继续。所以我正在考虑也许我应该首先更改最后 4 位数字并保持前 2 位不变。需要时继续第二个和第一个。
标签: php mysql alphanumeric unique-id