【问题标题】:Generate alphanumeric string with 2 letters and 5 digits. PHP生成 2 个字母和 5 个数字的字母数字字符串。 PHP
【发布时间】:2018-10-10 08:23:16
【问题描述】:

我正在使用以下代码生成一个唯一的 5 位代码。

$randomUniqueNumber = rand(10000,99999);

我需要将其更改为包含 5 个数字和 2 个字母的字母数字。

下面给了我一个字母数字,但不限于只有 2 个字母。

$generated = substr(md5(rand()),0,5);

如何生成一个包含 5 个数字和两个字母的随机字符串?

【问题讨论】:

标签: php random


【解决方案1】:

可能有几种方法可以做到这一点,但以下内容很冗长。

<?php
// define your set
$nums = range(0, 9);
$alphas = range('a', 'z');

// shuffle sets
shuffle($nums);
shuffle($alphas);

// pick out only what you need
$nums = array_slice($nums, 0, 5);
$alphas = array_slice($alphas, 0, 2);

// merge them together
$set = array_merge($nums, $alphas);

// shuffle
shuffle($set);

// create your result
echo implode($set); //86m709g

https://3v4l.org/CV7fS

编辑:

阅读后我正在使用以下代码生成一个唯一的 5 位代码。 我建议改为通过将基数从递增值更改而不是随机(或随机)来创建您的字符串毫无疑问,您会得到重复,并且为了避免出现重复,您需要预先生成和存储整套 代码 并从中挑选。

请查看hashids 之类的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多