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 并正确设置脚本挂起或页面将不可用。
我还没有找到任何简单的解决方法来扭转它,
但我相信一定有办法解决这个问题。
因此,如果有人知道解决方案,请随时开发和提交。 谢谢

Click here to see the BaseCode

我找到了类似的解决方案 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")。