>  기사  >  백엔드 개발  >  PHP에서 지정된 범위 내에서 고유 번호를 생성하는 방법

PHP에서 지정된 범위 내에서 고유 번호를 생성하는 방법

王林
王林원래의
2020-07-23 15:58:092370검색

PHP가 지정된 범위 내에서 고유 숫자를 생성하는 방법: 먼저 mt_rand() 함수를 통해 난수를 생성한 다음 array_flip() 함수를 통해 중복 숫자를 제거합니다. array_flip() 함수는 배열의 키 이름과 해당 관련 키 값을 바꾸는 데 사용됩니다.

PHP에서 지정된 범위 내에서 고유 번호를 생성하는 방법

함수 소개:

(추천 튜토리얼: php 튜토리얼)

mt_rand() 함수는 Mersenne Twister 알고리즘을 사용하여 임의의 정수를 생성합니다. min(또는 0)과 max(또는 mt_getrandmax()) 사이의 임의의 정수입니다. max < min이면 FALSE를 반환합니다.​

팁: 이 함수는 임의의 값을 생성하고 rand() 함수보다 4배 빠르게 결과를 반환하는 데 더 나은 선택입니다.

array_flip() 함수는 배열의 키 이름과 해당 관련 키 값을 반전/교환하는 데 사용됩니다. 반전이 성공하면 반전된 배열이 반환됩니다. 반전에 실패하면 NULL이 반환됩니다.

코드 구현:

<?php
/*
* array unique_rand( int $min, int $max, int $num )
* 生成一定数量的不重复随机数,指定的范围内整数的数量必须
* 比要生成的随机数数量大
* $min 和 $max: 指定随机数的范围
* $num: 指定生成数量
*/
function unique_rand($min, $max, $num) {
  $count = 0;
  $return = array();
  while ($count < $num) {
    $return[] = mt_rand($min, $max);
    $return = array_flip(array_flip($return));
    $count = count($return);
  }
  //打乱数组,重新赋予数组新的下标
  shuffle($return);
  return $return;
}

//生成10个1到100范围内的不重复随机数
$arr = unique_rand(1, 100, 10);
echo implode($arr, ",");
?>

프로그램 실행 결과:

48,5,19,36,63,72,82,77,46,16

위 내용은 PHP에서 지정된 범위 내에서 고유 번호를 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.