为名称提供唯一的数字ID

时间:2017-11-11 16:35:44

标签: php string md5

我的index.php文件中有以下代码

<?php
$name = $_GET['name'];
$id = rand(0,100); // i need a unique id from the name than random
?>

我想要做的是,当有人提供他们的名字时,应该显示0到100之间的唯一数字ID。刷新页面后不应更改。

例如, 如果用户提供名称“John”,则id应为“99”(或任何其他不会更改的数字) 如果用户提供名称“david”,则id应为“5”(或任何其他不会更改的数字)

我尝试使用md5,但它产生了更多的数字,我无法使用它,因为我是PHP的新手。

抱歉我的英语不好。

2 个答案:

答案 0 :(得分:0)

rand()函数只为您提供随机数,但它永远不会为您提供任何单词的唯一编号。最好的解决方案是使用md5将你的名字转换成哈希值 始终是唯一的字符串。如果您需要有关md5的帮助,请告诉我。

答案 1 :(得分:0)

在数组中创建一个数字数组,然后我们将其洗牌。获取混洗数组的元素。

function generateRandomNumberInRange($min, $max, $quantity) {
     $randomNumberArray = range($min, $max);
     shuffle($randomNumberArray);
     return array_slice($randomNumberArray, 0, $quantity);
}

echo "<pre>";
$numbersArray = generateRandomNumberInRange(0, 100, 101);
print_r($numbersArray);
echo "</pre>"

for ($i = 0; $i <= 100; $i++) {
    echo $numbersArray[$i] . "<br/>";
}

然后将名称分配给唯一和随机数。