note 73731 deleted from function.rand by felipe

[email protected]
Newsgroups php.notes
Message-ID <[email protected]>
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.