Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从大整数生成唯一的小整数_Php_Unique - Fatal编程技术网

Php 如何从大整数生成唯一的小整数

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中的较大整数生成一个介于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的小数字必须始终相同,您将如何做到这一点?

您似乎已经有了一个很好的解决方案:模数

$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]