Random number in range [min - max] using PHP

前端 未结 7 1333
走了就别回头了
走了就别回头了 2020-12-14 05:37

Is there a way to generate a random number based on a min and max?

For example, if min was 1 and max 20 it should generate any number between 1 and 20, including 1 a

相关标签:
7条回答
  • 2020-12-14 05:45
    rand(1,20)
    

    Docs for PHP's rand function are here:

    http://php.net/manual/en/function.rand.php

    Use the srand() function to set the random number generator's seed value.

    0 讨论(0)
  • 2020-12-14 05:46

    A quicker faster version would use mt_rand:

    $min=1;
    $max=20;
    echo mt_rand($min,$max);
    

    Source: http://www.php.net/manual/en/function.mt-rand.php.

    NOTE: Your server needs to have the Math PHP module enabled for this to work. If it doesn't, bug your host to enable it, or you have to use the normal (and slower) rand().

    0 讨论(0)
  • 2020-12-14 05:46

    Try This one. It will generate id according to your wish.

    function id()
    {
     // add limit
    $id_length = 20;
    
    // add any character / digit
    $alfa = "abcdefghijklmnopqrstuvwxyz1234567890";
    $token = "";
    for($i = 1; $i < $id_length; $i ++) {
    
      // generate randomly within given character/digits
      @$token .= $alfa[rand(1, strlen($alfa))];
    
    }    
    return $token;
    }
    
    0 讨论(0)
  • 2020-12-14 05:55
    <?php
      $min=1;
      $max=20;
      echo rand($min,$max);
    ?>
    
    0 讨论(0)
  • 2020-12-14 05:55

    I have bundled the answers here and made it version independent;

    function generateRandom($min = 1, $max = 20) {
        if (function_exists('random_int')):
            return random_int($min, $max); // more secure
        elseif (function_exists('mt_rand')):
            return mt_rand($min, $max); // faster
        endif;
        return rand($min, $max); // old
    }
    
    0 讨论(0)
  • 2020-12-14 05:58
    (rand() % ($max-$min)) + $min
    

    or

    rand ( $min , $max )
    

    http://php.net/manual/en/function.rand.php

    0 讨论(0)
提交回复
热议问题