note 92267 added to function.shuffle
| From: | Kaza55 at osu1 dot php dot net | Date: | Thu, 16 Jul 2009 22:38:28 +0000 |
| Subject: | note 92267 added to function.shuffle | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-158386@lists.php.net to get a copy of this message | ||
Randomizes the elements in your 1D array without using shuffle().
Feel free to use, no credit required!
<?php
function my_shuffle_array($array){
$size = count($array);
$first_key = array_shift(array_keys($array));
$second_key = array_pop(array_keys($array));
if($first_key == $second_key){return $array;}
for($i=1;$i<=(rand(1,$size)*$size);$i++){
$r1=rand($first_key,$second_key);
$r2=rand($first_key,$second_key);
while( $r1==$r2 || !array_key_exists($r1,$array) || !array_key_exists($r2,$array) ){
$r1=rand($first_key,$second_key);
$r2=rand($first_key,$second_key);
}
$temp = $array[$r1];
$array[$r1] = $array[$r2];
$array[$r2] = $temp;
}
return $array;
}
?>
As you can see, it returns the shuffled array.
----
Server IP: 209.41.74.194
Probable Submitter: 169.237.97.215
----
Manual Page -- http://www.php.net/manual/en/function.shuffle.php
Edit -- https://master.php.net/note/edit/92267
Del: integrated -- https://master.php.net/note/delete/92267/integrated
Del: useless -- https://master.php.net/note/delete/92267/useless
Del: bad code -- https://master.php.net/note/delete/92267/bad+code
Del: spam -- https://master.php.net/note/delete/92267/spam
Del: non-english -- https://master.php.net/note/delete/92267/non-english
Del: in docs -- https://master.php.net/note/delete/92267/in+docs
Del: other reasons-- https://master.php.net/note/delete/92267
Reject -- https://master.php.net/note/reject/92267
Search -- https://master.php.net/manage/user-notes.php