|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #19343 array_rand does not return keys randomly
Submitted: 2002-09-10 14:09 UTC Modified: 2002-11-20 01:00 UTC
Avg. Score:3.6 ± 0.8
Reproduced:3 of 3 (100.0%)
Same Version:0 (0.0%)
Same OS:3 (100.0%)
From: catch at sonaware dot net Assigned:
Status: No Feedback Package: Arrays related
PHP Version: 4.2.3 OS: WinXP
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
Block user comment
Status: Assign to:
Bug Type:
From: catch at sonaware dot net
New email:
PHP Version: OS:


 [2002-09-10 14:09 UTC] catch at sonaware dot net
I called array_rand($my_array, count($my_array)). I expected array_rand to return the keys of $my_array in random order. I actually received the keys in almost the same order each time. $my_array was a 4 element array and the third element's key never changed position. I tried using srand also, but it produced same results. On an older version of php(4.1.2) the function worked as expected.

script on WinXP php4.2.3:
$numbers = range (1,4);
$rand_keys = array_rand ($numbers, count($numbers));
foreach ($rand_keys as $val) {
   print $numbers[$val]."\n";


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2002-09-17 22:08 UTC]
Sorry, but the bug system is not the appropriate forum for asking
support questions. Your problem does not imply a bug in PHP itself.
For a list of more appropriate places to ask for help using PHP,
please visit

Thank you for your interest in PHP.

I've tried this a few dosen times and the results were quite random. Please keep in mind that with a small array, such as the one in your example, there are only 24 possible combinations. Which means, that on average every 24th run you'll get an 'unsorted' array.
 [2002-10-04 17:23 UTC] matthias dot thalmann at sciontec dot com
Well - I experienced the same problems (array_rand() is [still] not random) in a Windows environment as does. I actually was looking forward to a new release as this 'bug' was reported to be corrected and found the 4.2.3 release to act the same wrong way than 'before'.

This must be a problem on the Windows side, for in the Linux environment I really get random values ...
 [2002-11-04 16:34 UTC] catch at sonaware dot net
I see that another person has reproduced the bug. In my original submission I specified my OS as Windows XP. may have not tested the function on windows, therefore I think it warrants reopening. My example is sufficient to quickly reproduce the bug.
 [2002-11-04 18:43 UTC]
Please try using this CVS snapshot:
For Windows:

I've just tested this function using latest CVS (unstable) in Windows XP. The code from your example has worked properly. Therefor I am closing the bug report.
 [2002-11-20 01:00 UTC] php-bugs at lists dot php dot net
No feedback was provided for this bug for over 2 weeks, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Mon May 20 16:01:35 2024 UTC