Re: [PHP4BETA] array_rand() feedback
| From: | php4 at developersdesk dot com | Date: | Sat, 29 Apr 2000 19:22:53 +0000 |
| Subject: | Re: [PHP4BETA] array_rand() feedback | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-14183@lists.php.net to get a copy of this message | ||
Addressed to: Andrei Zmievski <andrei@ispi.net>
php4beta@lists.php.net
** Reply to note from Andrei Zmievski <andrei@ispi.net> Sat, 29 Apr 2000 16:00:14 -0500
>
> I wrote a function called array_rand() that is supposed to return a
> random element from the input array. After I wrote it, I asked myself:
> would it be useful to return the key for that value as well as the
> value itself? What do you think?
It would sometimes be useful, but not always. Maybe make it another
function?
> Example (without key):
>
> $ar = array(1, 2, 3); $val = array_rand($ar);
>
> Example (with key): $ar = array("one"=>1, "two"=>2,
> "three"=>3);
> list($key, $val) = array_rand($ar);
>
> Let me know what you think. I also thought about adding a second
> argument that specifies how many random elements to return. If that
> gets added then returning keys and values for multiple arguments gets
> a little trickier.
>
$Entries = hash_rand( $var, $count );
while( list( $key, $val ) = each( $Entries )) {
echo "The random choices are: $key - $val<BR>\n";
}
I would probably want it to make sure that there are no duplicates in
the output array. It would be an error if $count was > count( $var ).
If each() only evaluates its argument once when called in a while like
this, then the $Entries variable is not needed.
Rick Widmer
http://www.developersdesk.com