Hướng dẫn php random unique number - php số duy nhất ngẫu nhiên

$len = 10;   // total number of numbers
$min = 100;  // minimum
$max = 999;  // maximum
$range = []; // initialize array
foreach (range(0, $len - 1) as $i) {
    while(in_array($num = mt_rand($min, $max), $range));
    $range[] = $num;
}
print_r($range);

Tôi đã quan tâm để xem cách trả lời được chấp nhận xếp chồng lên nhau. Thật hữu ích khi lưu ý, một sự kết hợp của cả hai có thể là lợi thế; Trong thực tế, một hàm sử dụng có điều kiện hoặc cái kia tùy thuộc vào các giá trị nhất định:

Nội phân chính

  • #1. uniqid ():
  • #2. Rand ():
  • #3. Số ngẫu nhiên trong MySQL:
  • Hàm php rand ()
  • Hàm php mt_rand ()
  • Bài đăng PHP được đề xuất:
  • Làm thế nào để bạn tạo ra các số duy nhất ngẫu nhiên?
  • Làm cách nào để tạo một ký tự ngẫu nhiên trong PHP?
  • Làm thế nào để bạn tạo ra một số ngẫu nhiên không lặp lại trong PHP?
  • Làm thế nào để bạn tạo ra các chuỗi chữ và số độc đáo ngẫu nhiên?

# The accepted answer
function randRange1($min, $max, $count)
{
    $numbers = range($min, $max);
    shuffle($numbers);
    return array_slice($numbers, 0, $count);
}

# My answer
function randRange2($min, $max, $count)
{
    $range = array();
    while ($i++ < $count) {
        while(in_array($num = mt_rand($min, $max), $range));
        $range[] = $num;
    }
    return $range;
}

echo 'randRange1: small range, high count' . PHP_EOL;
$time = microtime(true);
randRange1(0, 9999, 5000);
echo (microtime(true) - $time) . PHP_EOL . PHP_EOL;

echo 'randRange2: small range, high count' . PHP_EOL;
$time = microtime(true);
randRange2(0, 9999, 5000);
echo (microtime(true) - $time) . PHP_EOL . PHP_EOL;

echo 'randRange1: high range, small count' . PHP_EOL;
$time = microtime(true);
randRange1(0, 999999, 6);
echo (microtime(true) - $time) . PHP_EOL . PHP_EOL;

echo 'randRange2: high range, small count' . PHP_EOL;
$time = microtime(true);
randRange2(0, 999999, 6);
echo (microtime(true) - $time) . PHP_EOL . PHP_EOL;

Kết quả:

randRange1: small range, high count
0.019910097122192

randRange2: small range, high count
1.5043621063232

randRange1: high range, small count
2.4722430706024

randRange2: high range, small count
0.0001051425933837

Nếu bạn đang sử dụng phạm vi nhỏ hơn và số lượng giá trị trả về cao hơn, câu trả lời được chấp nhận chắc chắn là tối ưu; Tuy nhiên, như tôi đã mong đợi, phạm vi lớn hơn và số lượng nhỏ hơn sẽ mất nhiều thời gian hơn với câu trả lời được chấp nhận, vì nó phải lưu trữ mọi giá trị có thể trong phạm vi. Bạn thậm chí còn có nguy cơ thổi nắp bộ nhớ của PHP. Một con lai đánh giá tỷ lệ giữa phạm vi và số lượng, và có điều kiện chọn trình tạo sẽ là tốt nhất của cả hai thế giới.

Một số duy nhất được sử dụng để xác định bản ghi trong cơ sở dữ liệu MySQL của bạn và cung cấp tính duy nhất cho mục nhập. Nhiều hoặc thường là các số duy nhất là hữu ích trong các phiếu thanh toán, chứng từ và để phân biệt các bản ghi duy nhất. Hàm uniqid () trong PHP rất hữu ích nhưng các phương thức khác có để tạo số duy nhất trong PHP/MySQL.uniqid() function in PHP is helpful but other methods are there to generate unique number in PHP/MySQL.

#1. uniqid ():

#2. Rand ():13 character length string will be returned.

#3. Số ngẫu nhiên trong MySQL:6226f14d5b88e

#2. Rand ():

#3. Số ngẫu nhiên trong MySQL:

Hàm php rand () Generating a random number means that you will need to check each time you generate it to ensure you haven’t used it before. This leads to race conditions.

$random = (int)((rand() * rand())/rand());

Hàm php mt_rand ()Use time() function with rand(start, end) range to get pretty good and assures 99.9% random numbers.

$random = (time()+ rand(1,1000));

#3. Số ngẫu nhiên trong MySQL:

Hàm php rand ()primary key with auto increment identified a unique row but in case if you need a distinct number in column of MySQL.

Hàm php mt_rand () A table has multiple payment vouchers of same customer, requires a unique random number in column. Here is how to generate unique number in MySQL.

FLOOR(RAND() * 401) + 100

Bài đăng PHP được đề xuất:

SELECT username, voucher_id, FLOOR(RAND() * 401) + 100 AS `random_number` 
FROM customers

http://www.php.net/manual/en/function.com-create-guid.php

Làm thế nào để bạn tạo ra các số duy nhất ngẫu nhiên?

Làm cách nào để tạo một ký tự ngẫu nhiên trong PHP?

  • Làm thế nào để bạn tạo ra một số ngẫu nhiên không lặp lại trong PHP?
  • Làm thế nào để bạn tạo ra các chuỗi chữ và số độc đáo ngẫu nhiên?

Hướng dẫn php random unique number - php số duy nhất ngẫu nhiên

Kết quả:

Nếu bạn đang sử dụng phạm vi nhỏ hơn và số lượng giá trị trả về cao hơn, câu trả lời được chấp nhận chắc chắn là tối ưu; Tuy nhiên, như tôi đã mong đợi, phạm vi lớn hơn và số lượng nhỏ hơn sẽ mất nhiều thời gian hơn với câu trả lời được chấp nhận, vì nó phải lưu trữ mọi giá trị có thể trong phạm vi. Bạn thậm chí còn có nguy cơ thổi nắp bộ nhớ của PHP. Một con lai đánh giá tỷ lệ giữa phạm vi và số lượng, và có điều kiện chọn trình tạo sẽ là tốt nhất của cả hai thế giới.

Hàm php rand ()

Hàm php mt_rand ()

Bài đăng PHP được đề xuất:

Làm thế nào để bạn tạo ra các số duy nhất ngẫu nhiên?

 rand();

 or

 rand(min,max);

Làm cách nào để tạo một ký tự ngẫu nhiên trong PHP?

  • Làm thế nào để bạn tạo ra một số ngẫu nhiên không lặp lại trong PHP? This a first parameter of this function and it is optional. Specifies the minimum/smallest/lowest number to be returned. Default is 0
  • Làm thế nào để bạn tạo ra các chuỗi chữ và số độc đáo ngẫu nhiên? This a second parameter of this function and it is also optional. Specifies the maximum/largest/highest number to be returned.

Kết quả:





");

echo(rand(10,99) . "
"); // generate 2 digit unique random number in php echo(rand(1000,9999) . "
"); // generate 4 digit unique random number in php echo(rand(100000,999999) . "
"); // generate 4 digit unique random number in php echo(rand(10000000,99999999) . "
"); // generate 8 digit unique random number in php ?>

Hàm php mt_rand ()

Bài đăng PHP được đề xuất:

Bài đăng PHP được đề xuất:

Làm thế nào để bạn tạo ra các số duy nhất ngẫu nhiên?

# The accepted answer
function randRange1($min, $max, $count)
{
    $numbers = range($min, $max);
    shuffle($numbers);
    return array_slice($numbers, 0, $count);
}

# My answer
function randRange2($min, $max, $count)
{
    $range = array();
    while ($i++ < $count) {
        while(in_array($num = mt_rand($min, $max), $range));
        $range[] = $num;
    }
    return $range;
}

echo 'randRange1: small range, high count' . PHP_EOL;
$time = microtime(true);
randRange1(0, 9999, 5000);
echo (microtime(true) - $time) . PHP_EOL . PHP_EOL;

echo 'randRange2: small range, high count' . PHP_EOL;
$time = microtime(true);
randRange2(0, 9999, 5000);
echo (microtime(true) - $time) . PHP_EOL . PHP_EOL;

echo 'randRange1: high range, small count' . PHP_EOL;
$time = microtime(true);
randRange1(0, 999999, 6);
echo (microtime(true) - $time) . PHP_EOL . PHP_EOL;

echo 'randRange2: high range, small count' . PHP_EOL;
$time = microtime(true);
randRange2(0, 999999, 6);
echo (microtime(true) - $time) . PHP_EOL . PHP_EOL;
0

Làm cách nào để tạo một ký tự ngẫu nhiên trong PHP?

  • Làm thế nào để bạn tạo ra một số ngẫu nhiên không lặp lại trong PHP? This a first parameter of this function and it is optional. Specifies the minimum/smallest/lowest number to be returned. Default is 0
  • Làm thế nào để bạn tạo ra các chuỗi chữ và số độc đáo ngẫu nhiên? This a second parameter of this function and it is also optional. Specifies the maximum/largest/highest number to be returned.

Kết quả:





");

echo(rand(10,99) . "
"); // generate 2 digit unique random number in php echo(rand(1000,9999) . "
"); // generate 4 digit unique random number in php echo(rand(100000,999999) . "
"); // generate 4 digit unique random number in php echo(rand(10000000,99999999) . "
"); // generate 8 digit unique random number in php ?>

Note:

Nếu bạn đang sử dụng phạm vi nhỏ hơn và số lượng giá trị trả về cao hơn, câu trả lời được chấp nhận chắc chắn là tối ưu; Tuy nhiên, như tôi đã mong đợi, phạm vi lớn hơn và số lượng nhỏ hơn sẽ mất nhiều thời gian hơn với câu trả lời được chấp nhận, vì nó phải lưu trữ mọi giá trị có thể trong phạm vi. Bạn thậm chí còn có nguy cơ thổi nắp bộ nhớ của PHP. Một con lai đánh giá tỷ lệ giữa phạm vi và số lượng, và có điều kiện chọn trình tạo sẽ là tốt nhất của cả hai thế giới.

Bài đăng PHP được đề xuất:

  1. Làm thế nào để bạn tạo ra các số duy nhất ngẫu nhiên?
  2. Làm cách nào để tạo một ký tự ngẫu nhiên trong PHP?
  3. Làm thế nào để bạn tạo ra một số ngẫu nhiên không lặp lại trong PHP?
  4. Làm thế nào để bạn tạo ra các chuỗi chữ và số độc đáo ngẫu nhiên?
  5. Kết quả:
  6. Nếu bạn đang sử dụng phạm vi nhỏ hơn và số lượng giá trị trả về cao hơn, câu trả lời được chấp nhận chắc chắn là tối ưu; Tuy nhiên, như tôi đã mong đợi, phạm vi lớn hơn và số lượng nhỏ hơn sẽ mất nhiều thời gian hơn với câu trả lời được chấp nhận, vì nó phải lưu trữ mọi giá trị có thể trong phạm vi. Bạn thậm chí còn có nguy cơ thổi nắp bộ nhớ của PHP. Một con lai đánh giá tỷ lệ giữa phạm vi và số lượng, và có điều kiện chọn trình tạo sẽ là tốt nhất của cả hai thế giới.
  7. Một số duy nhất được sử dụng để xác định bản ghi trong cơ sở dữ liệu MySQL của bạn và cung cấp tính duy nhất cho mục nhập. Nhiều hoặc thường là các số duy nhất là hữu ích trong các phiếu thanh toán, chứng từ và để phân biệt các bản ghi duy nhất. Hàm uniqid () trong PHP rất hữu ích nhưng các phương thức khác có để tạo số duy nhất trong PHP/MySQL.
  8. UNIQID giúp bạn tạo số ngẫu nhiên dựa trên vi mô (ví dụ: dựa trên hàm thời gian () tính bằng micro giây). Một chuỗi chiều dài 13 ký tự sẽ được trả về.
  9. Php tìm kiếm mảng đa chiều theo khóa, giá trị và phím trả về
  10. json_encode ()- Chuyển đổi mảng thành json | Phản đối JSON PHP
  11. PHP loại bỏ các bản sao khỏi mảng đa chiều
  12. PHP xóa các phần tử hoặc giá trị trùng lặp khỏi mảng PHP
  13. Nhận giá trị cao nhất trong mảng đa chiều php
  14. PHP nhận được tối thiểu hoặc giá trị tối thiểu trong mảng
  15. Chuyển đổi CSV sang JSON PHP - Hướng dẫn PHP
  16. Chuỗi PHP thành chữ hoa, chữ thường & chữ cái đầu tiên
  17. Php: isset () vs clan () vs is_null ()
  18. Ví dụ về chức năng Php Chunk_split
  19. Hàm PHP: Ngày và giờ với các ví dụ
  20. Số ngược trong PHP | Hướng dẫn PHP

Tên tôi là Devendra Dode. Tôi là một nhà phát triển, doanh nhân và chủ sở hữu của Tutsmake.com. Tôi thích viết hướng dẫn và lời khuyên có thể giúp các nhà phát triển khác. Tôi chia sẻ các hướng dẫn của PHP, Python, JavaScript, JQuery, Laravel, LiveWire, Codeigniter, Node JS, Express JS, Vue JS, Angular JS, React JS, MySQL, MongoDB, Apis REST, Windows , Nhà soạn nhạc, SEO, WordPress, SSL và Bootstrap từ giai đoạn bắt đầu. Cũng như ví dụ demo.

Xem tất cả các bài viết của admin

Làm thế nào để bạn tạo ra các số duy nhất ngẫu nhiên?

Dưới đây là cách bạn có thể sử dụng chức năng Rand để tạo một tập hợp các số ngẫu nhiên duy nhất trong Excel:..

Trong một cột, sử dụng công thức = rand () để tạo một tập hợp các số ngẫu nhiên trong khoảng từ 0 đến 1 ..

Khi bạn đã tạo các số ngẫu nhiên, hãy chuyển đổi nó thành các giá trị, để nó không tính toán lại nhiều lần để làm cho sổ làm việc của bạn chậm ..

Làm cách nào để tạo một ký tự ngẫu nhiên trong PHP?

Hàm php rand tạo ra một chuỗi ngẫu nhiên ...

$ size = strlen ($ chars) ;.

for ($ i = 0; $ i <$ length; $ i ++) {.

$ str = $ chars [rand (0, $ size - 1)] ;.

Echo $ str ;.

Làm thế nào để bạn tạo ra một số ngẫu nhiên không lặp lại trong PHP?

Php session_start (); if (! isset ($ _ session ['số'])) {$ _session ['số'] = "*"; // --- tạo chức năng biến phiên} get_number () {$ i = 0; làm {$ num = rand (1,20); // --- Tạo một số ngẫu nhiên nếu (! strstr ($ _ session ['số'], "*".

Làm thế nào để bạn tạo ra các chuỗi chữ và số độc đáo ngẫu nhiên?

Nếu bạn muốn tạo các chuỗi chữ và số ngẫu nhiên từ một bộ ký tự cố định, bạn có thể sử dụng hàm str_shuffle ($ String). Hàm này sẽ cung cấp cho bạn một chuỗi bị xáo trộn ngẫu nhiên.use the str_shuffle($string) function. This function will provide you a randomly shuffled string.