假设我有一个包含100,000个或多或少随机字符串的数据库,我想从1到500之间的每个字符串生成一个数字。
我的方法应始终生成相同的数字(给定相同的字符串),它应该是1到500之间数字的均匀分布。
有什么想法吗?
答案 0 :(得分:1)
好像你需要一个散列函数。您可以使用crc32
和modulus 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);
}