PHP,如何按id散列分区?

PHP,如何按id散列分区?,php,mysql,hash,Php,Mysql,Hash,我需要在有限数量的分区中按id对数据进行分区,但不幸的是,我在PHP中找不到任何东西来实现这一点。 我必须从整数生成一组标准值,例如: id 1234-->哈希0 id 243-->哈希1 id 8471-->哈希19 给定数字/字符串的函数,随机返回从0到限制的数字。 在上述示例中: 分区散列(1234,20)=>0 分区散列(243,20)=>1 分区散列(8471,20)=>19 如何用PHP解决这个问题? 我考虑过使用md5,但它给了我一个长字符串,我仍然需要处理它来限制返回

我需要在有限数量的分区中按id对数据进行分区,但不幸的是,我在PHP中找不到任何东西来实现这一点。 我必须从整数生成一组标准值,例如:

  • id 1234-->哈希0
  • id 243-->哈希1
  • id 8471-->哈希19
给定数字/字符串的函数,随机返回从0到限制的数字。 在上述示例中:

  • 分区散列(1234,20)=>0
  • 分区散列(243,20)=>1
  • 分区散列(8471,20)=>19
如何用PHP解决这个问题? 我考虑过使用md5,但它给了我一个长字符串,我仍然需要处理它来限制返回值

多谢各位

更新
如果我用字符串代替整数呢?

可能有用吗?如果你知道你想要多少个分区,比如说19个,你可以使用一个简单的%运算符,比如:$partition\u nr=$id%19;它不会映射到您的0、1、19分区,但它将确保它们之间的均匀分布,这是一个关于整数的简单而伟大的解决方案!但是如果我有字符串作为输入呢?可能有用吗?如果你知道你想要多少个分区,比如说19个,你可以使用一个简单的%操作符,比如:$partition\u nr=$id%19;它不会映射到您的0、1、19分区,但它将确保它们之间的均匀分布,这是一个关于整数的简单而伟大的解决方案!但是如果我有字符串作为输入呢?