Php 如何从大整数生成唯一的小整数
我想从id中的较大整数生成一个介于1和3之间的唯一小整数。例如:Php 如何从大整数生成唯一的小整数,php,unique,Php,Unique,我想从id中的较大整数生成一个介于1和3之间的唯一小整数。例如: id: 348593 ----> generated: 2 id: 98762 ----> generated: 3 id: 12 ----> generated: 1 我使用模块对两个数字1和2进行了测试: $id=43784643; $module=$id%2;//0如果偶数,1如果奇数 $generated=$module+1; 考虑到同一id的小数字必须始终相同,您将如何做到这一点?您
id: 348593 ----> generated: 2
id: 98762 ----> generated: 3
id: 12 ----> generated: 1
我使用模块对两个数字1和2进行了测试:
$id=43784643;
$module=$id%2;//0如果偶数,1如果奇数
$generated=$module+1;
考虑到同一id的小数字必须始终相同,您将如何做到这一点?您似乎已经有了一个很好的解决方案:模数
$generated = ($id % 3) + 1
您的解决方案没有问题,但您需要使用3而不是2 我也会跳过创建一个无意义的变量,但否则我会说这是一个实解 如果有问题,你能详细说明一下这个问题吗
$test = array(
123456789,987654321,2222,111111,
5555555,63243514513,7,43,222,
65462,9191910);
foreach($test as $k=>$v) {
echo '['.$v.'] ['.(($v % 3) +1).']';
}
结果:
[123456789] [1]
[987654321] [1]
[2222] [3]
[111111] [1]
[5555555] [3]
[63243514513] [2]
[7] [2]
[43] [2]
[222] [1]
[65462] [3]
[9191910] [1]