在php中如何从特定值范围内的字符串生成固定数字

时间:2013-03-21 09:37:25

标签: php random

假设我有一个包含100,000个或多或少随机字符串的数据库,我想从1到500之间的每个字符串生成一个数字。

我的方法应始终生成相同的数字(给定相同的字符串),它应该是1到500之间数字的均匀分布。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

好像你需要一个散列函数。您可以使用crc32modulus operator

echo abs(crc32("hello world")) % 500 + 1;

答案 1 :(得分:0)

您还可以使用以下内容:

function string_to_decimal($hex_str)
{
    $arr = str_split($hex_str, 4);
    foreach ($arr as $grp) {
        $dec[] = str_pad(hexdec($grp), 5, '0', STR_PAD_LEFT);
    }
    return implode('', $dec);
}