DEV Community

Kelly Okere
Kelly Okere

Posted on

How to generate random number in PHP

Ever wondered how to generate random numbers in PHP using a simple function while excluding some numbers you don't want, just like a friend of mine that requested for this code?

Here's how to do it:

<?php
function generateRandomNumber($min, $max, $excludedNumbersArr) {
    do {
        $number = rand($min, $max);
    } while (in_array($number, $excludedNumbersArr));

    return $number;
}

// Use it this way
echo generateRandomNumber(50,250,[123,145]); //This PHP function generates a number between 50 and 250, excluding 123 and 145.
?>
Enter fullscreen mode Exit fullscreen mode

Explanation:

  1. Set the Range: The function defines the minimum ($min) and maximum ($max) values for the random number.
  2. Excluded Numbers: An array $excludedNumbersArr contains the numbers you want to exclude.
  3. Generate Random Number: A do-while loop generates a random number using rand($min, $max). It continues to generate a new number until the number is not in the $excludedNumbersArr array.
  4. in_array(): This is a PHP function that checks if a value exists in an array. It takes two parameters:

    Value: The value you want to search for.
    Array: The array in which you want to search for the value.

  5. Return the Number: Once a valid number is generated, it is returned.

This function ensures that the generated number is within the specified range and does not include the excluded values.

Thanks for reading this article.

I write codes on demand. Let me know the code you need, and I will help you write them in your programming language.

PS:
I love coffee, and writing these articles takes a lot of it! If you enjoy my content and would like to support my work, you can buy me a cup of coffee. Your support helps me to keep writing great content and stay energized. Thank you for your kindness!
Buy Me A Coffee.

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (2)

Collapse
 
drazenbebic profile image
Drazen Bebic

That's a nifty function, but please be aware that these random strings are not cryptographically safe and should therefore not be used for encryption.

Collapse
 
kellyblaire profile image
Kelly Okere • Edited

Thanks for your feedback, Drazen.

It's important to note that this function is not meant for encryption purposes. It's just a basic function for generating random codes within a certain range of numbers while ignoring any number within a given array.

There are more cryptographically safe approaches to generate random numbers for encryption purposes, and this is not one of them.

For encryption purposes, one can use the functions introduced in PHP 7 and above, like random_int() or random_bytes() (with some tweaks), or even the legendary openssl_random_pseudo_bytes() (for older versions of PHP).

Maybe I'll update the post for clarity.

Thanks again.

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay