PHP 根据提供的 ID 和长度从数组值创建精确的键字符串
PHP create exact key string from array values by provided ID and length
大家好,我真的需要帮助完成我的生成器的最终编码。
待办事项:
需要有一些相反的方法来做到这一点:
8长度生成码
0000 0000 = Code Number 0
0000 0001 = Code Number 1
0000 0158 = Code Number (1 * 10^2) + (5 * 10^1) + (8 * 10^0) = 158
For Alphabets (A=0, B=1, C= 2, ... Z = 25, a = 26, ..., z = 51, 0 = 52, 1 = 53, 9 = 61:
AAAA ABCD = Code Number (0 * 62^7) + (0 * 62^6) + (0 * 62^5) + (0 + 62^4) + (0 * 62^3) + (1 * 62^2) + (2 * 62^1) + (3 * 62^0) = 14780307
这是目前的方式:
生成密钥->计算密钥的possicion
想要的解决方案:
输入 ID -> 通过 PHP "for" 循环
无需过多循环即可生成密钥
目前如果我输入 ID 5,000,000 并正确设置脚本挂起或页面将不可用。
我还没有找到任何简单的解决方法来扭转它,
但我相信一定有办法解决这个问题。
因此,如果有人知道解决方案,请随时开发和提交。
谢谢
我找到了类似的解决方案 here at github,在理解了我创建的代码后
工作 PHP 示例:
// Digital number -->> AlphaNum code
$code_id = 1;
$code_length = 8;
$characters_range = array_merge(range('A','Z'), range(0,9));
$characters_count = count($characters_range);
$code_max_id = bcpow($characters_count, $code_length);
echo $code_max_id;
echo "\n";
for($length=($code_length-1);$length>=0;$length--){
$possition = floor($code_id / bcpow($characters_count, $length));
$code_id = $code_id - ($possition * bcpow($characters_count, $length));
$character_keys[] = $characters_range[$possition];
}
//Choose which one to use
//echo implode($character_keys);
print_r($character_keys);
Here is a Czech website with the same thread.
所以现在我可以毫无困难地完成我的 CANG("Complex Alpha-Numeric Generator")。
大家好,我真的需要帮助完成我的生成器的最终编码。
待办事项:
需要有一些相反的方法来做到这一点:
8长度生成码
0000 0000 = Code Number 0 0000 0001 = Code Number 1 0000 0158 = Code Number (1 * 10^2) + (5 * 10^1) + (8 * 10^0) = 158 For Alphabets (A=0, B=1, C= 2, ... Z = 25, a = 26, ..., z = 51, 0 = 52, 1 = 53, 9 = 61: AAAA ABCD = Code Number (0 * 62^7) + (0 * 62^6) + (0 * 62^5) + (0 + 62^4) + (0 * 62^3) + (1 * 62^2) + (2 * 62^1) + (3 * 62^0) = 14780307
这是目前的方式:
生成密钥->计算密钥的possicion
想要的解决方案:
输入 ID -> 通过 PHP "for" 循环
目前如果我输入 ID 5,000,000 并正确设置脚本挂起或页面将不可用。
我还没有找到任何简单的解决方法来扭转它,
但我相信一定有办法解决这个问题。
因此,如果有人知道解决方案,请随时开发和提交。
谢谢
我找到了类似的解决方案 here at github,在理解了我创建的代码后
工作 PHP 示例:
// Digital number -->> AlphaNum code $code_id = 1; $code_length = 8; $characters_range = array_merge(range('A','Z'), range(0,9)); $characters_count = count($characters_range); $code_max_id = bcpow($characters_count, $code_length); echo $code_max_id; echo "\n"; for($length=($code_length-1);$length>=0;$length--){ $possition = floor($code_id / bcpow($characters_count, $length)); $code_id = $code_id - ($possition * bcpow($characters_count, $length)); $character_keys[] = $characters_range[$possition]; } //Choose which one to use //echo implode($character_keys); print_r($character_keys);
Here is a Czech website with the same thread.
所以现在我可以毫无困难地完成我的 CANG("Complex Alpha-Numeric Generator")。