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

Moved States and Internet Issues: Help!

I recently relocated from Washington to Texas and signed up with a new internet provider that offers 1 Gbps with unlimited data. While speed...

How Can I Successfully Uninstall the Intelligence Hub App?

I recently downloaded an app called Intelligence Hub to help manage my work schedules. In my haste to get going, I accepted all the...

Suggestions for Improving My First PC Build

I'm planning to build my first PC, focusing on a budget-friendly all-white theme. I've already chosen my components, but I would appreciate any tips...

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

Erase Gemini Nano Banana Watermark

Below is a simple content eraser tool. It works very similar to the content aware fill tool that is used in Photoshop. You can...

Keep Your Screen Awake Tool

This simple online stay awake tool prevents your computer screen from going to sleep while you have this page open. It runs entirely in your...

Neural Network Simulation Tool

The Neural Network Visual Builder is an interactive, client-side tool designed to demystify deep learning. It allows users to drag-and-drop neural network layers to...

Ray Trace Simulator – Interactive Optical Ray Tracing Tool

This ray trace simulator lets you visualise how light rays move through an optical system in real time. You can trace beams as they...

Interactive CPU Architecture Simulator

This is an Interactive CPU Architecture Simulator that provides a hands-on, visual learning experience for understanding how a processor executes code. It models a...

AI Image Upscaler

Our AI Image Upscaler allows you to upload any image and instantly increase its resolution using advanced upscaling models. Choose between 2x, 3x or...

Latest Posts

Latest Questions