Note Submitter: kurtubba at gmail dot com
----
#correction of my last post, wrong operator on ($keys < count($returnme)-1) , additional reset arg added for frequent use
Trying to pick up random keys from an array but don't want any duplicates?
try this
<?php
//returns an array of random keys between 2 numbers
function &UniqueRands($min, $max, $keys, $reset=true){
static $returnme = array();
if($reset) $returnme = array();
//while is used to avoid recursive the whole function
while(in_array($x = rand($min,$max),$returnme));
$returnme[] = $x;
//$keys are the number of random integers in the array
//must not be more than the sub of max - min
if($keys > count($returnme) && count($returnme) < ($max-$min))
UniqueRands($min, $max, $keys,false);
return $returnme;
}
//usage
$rands = & UniqueRands(0, 100, 30);
print_r($rands);
//with an array
$vararry = array('red', 'blue', 'green', 'yellow','black');
$rands = & UniqueRands(0, count($vararry)-1, 3);
foreach($rands as $x)
echo "$vararry[$x],";
?>
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.