> 백엔드 개발 > PHP 튜토리얼 > PHP 난수에서 문자와 숫자를 결합하는 방법 처음 두 개는 문자 뒤에 숫자가 옵니까?

PHP 난수에서 문자와 숫자를 결합하는 방법 처음 두 개는 문자 뒤에 숫자가 옵니까?

WBOY
풀어 주다: 2016-09-21 14:12:54
원래의
1251명이 탐색했습니다.

PHP 난수에서 문자와 숫자를 결합하는 방법 처음 두 개는 문자 뒤에 숫자가 오나요?

답글 내용:

PHP 난수에서 문자와 숫자를 결합하는 방법 처음 두 개는 문자 뒤에 숫자가 오나요?

위에서 언급한 아이디어가 맞습니다. 난수가 너무 크면 반복이 발생하는 것이 정상입니다. 관심이 있는 경우에는 백만 번 실행하여 결과를 확인할 수 있습니다. 반복 확률은 입니다.

<code>function getRandomString($prefixLength = 2, $suffixLength = 6) {
    $t = '';
    for ($i=0; $i<$prefixLength; $i++) {
        $salt = mt_rand(1000, 9999);
        if ($salt % 2) {
            $t .= chr(mt_rand(97,122));
        } else {
            $t .= chr(mt_rand(65,90));
        }
    }
    $min = intval(str_pad('1', $suffixLength, '0', STR_PAD_RIGHT));
    $max = intval(str_repeat('9', $suffixLength));
    return $t . mt_rand($min, $max);
}

</code>
로그인 후 복사

먼저 임의의 문자를 생성한 다음 임의의 숫자를 생성할 수 있지만 이로 인해 중복이 발생할 수 있으므로 최대한 중복을 피하려면 다음 숫자로만 시작하면 됩니다. 다음 예시를 시도해 보세요

<code>function randomKey(){
    $re = '';
    $letter = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    while(strlen($re)<2) {
        $re .= $letter[rand(0, strlen($letter)-1)]; /** 从$letter中随机产生一个字符 */
    }
    $_rand = mt_rand(10000000, 99999999); /** 生成8位随机数 */
    list($usec, $sec) = explode(" ", microtime()); /** 获取微秒时间戳 */
    $microtime = str_replace(".", "", ((float)$usec + (float)$sec)); /** 处理字符串 */
    
    $result = $re.$_rand.$microtime;
}</code>
로그인 후 복사

이런 방식으로 생성된 난수는 다소 길 수 있습니다. 난수를 제거하거나 문자와 미묘한 타임스탬프를 직접 사용할 수 있습니다. 참고용

임의의 문자 두 개를 임의의 배열에 넣은 다음 서로 이어붙일 수는 없나요? 아니면 특별한 도움이 필요한가요?

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿