Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设我有一个包含 100,000 个或多或少随机字符串的数据库,我想从每个字符串中生成一个介于 1 到 500 之间的数字。
我的方法应该始终生成相同的数字(给定相同的字符串),并且应该是从 1 到 500 的数字的均匀分布。
有任何想法吗?
好像你需要一个散列函数。您可以使用crc32和模运算符:
crc32
echo abs(crc32("hello world")) % 500 + 1;
你也可以使用类似的东西:
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); }