How To Fix PHP Random Being The Same

Having spent some time dealing with random numbers in C#, i was a little stumped when coming to php when I found myself having random numbers coming out the same. I know from dealing with this before that it is caused by the server being so fast that the seed doesnt have time to change. Holding onto the random context in C# is how to work around this but with PHP, random is not part of an object that you can instantiate. So how do you deal with PHP rand producing the same numbers while in a loop. For example.

foreach($words as $word)
{
    if(mt_rand(0,1) == 1)
    {
        //do this
    }
    else
    {
        //do that
    }
}

Using mt_rand was the first suggestion, but since I was already using PHP7 I was made aware that the old rand methods are now just aliases for these new random functions. Either way, it didnt fix the problem. The solution was to come up with some kind of seed that would be unique for my problem that I could feed into the library to ensure that PHP would come up with a random value each time.

I have come up with a rather simple seed method that will ensure that you will get a completely random value, every time by simply having a piece of text to produce a random seed.  This method will take the string and convert the letters to their ASCII value (or something like that) to produce a random number. All of these random numbers are combined into a string to produce a completely random number. This allowed me to reset the random seed for each loop I was doing and ensured that each word I was dealing with, had a proper random number generated to go along with it.

function SetRandomSeed($string)
{
    for($i = 0; $i < strlen($string); $i++) 
    {
        $result .= ord($string[$i]);
    }
    mt_srand($result . time());
}

 

Related Articles

Related Questions

Is My HDD Screaming for Help or Can It Be Saved?

A couple of days ago, I've noticed that my HDD has been spinning up and down erratically. Today, it's gotten worse, and I can...

Why Can’t My Debian Containers Connect to the Internet?

Hey everyone! I've been having a weird issue with my Debian and Ubuntu containers not being able to access the internet. When I try...

Why am I getting an “unusual traffic” warning on Safari?

I was just browsing for something pretty normal when suddenly I got a message saying, "Our systems have detected unusual traffic from your computer...

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Latest Tools

Scavenger Hunt Team Randomizer

Planning a scavenger hunt and need to split participants into random teams? Whether you're organizing a school activity, a corporate team-building event, or a...

File Hash Generator Online – Get Instant MD5 and SHA-256 Hashes

Whether you are validating downloads, checking for corruption, or comparing files for duplicates, having a fast and secure way to generate file hashes is...

Visual CSS Editor for Modern Glass UI Effects

Modern UI design is all about clean, layered aesthetics, and few styles deliver this better than glassmorphism. If you're designing sleek user interfaces and...

Fast and Accurate Tap BPM Counter – Free Web Tool

Whether you're producing music, DJing live, or just figuring out the tempo of a song, knowing the BPM (beats per minute) can be critical....

Glassmorphism CSS Generator with Live Preview

Glassmorphism is one of the most visually striking design trends in modern UI. Its soft, frosted-glass effect adds depth and elegance to web interfaces,...

Add Custom Speech and Caption Boxes to Any Image Online

Creating comic-style images used to require complex design tools or specialist software. Whether you're making memes, teaching graphics, social media posts or lighthearted content,...

Latest Posts

Latest Questions