GoLang array_rand

is this article helpful? yes | no
GoLang replacement for PHP's array_rand [edit | history]
func ArrayRand(elements []interface{}) []interface{} {
	r := rand.New(rand.NewSource(time.Now().UnixNano()))
	n := make([]interface{}, len(elements))
	for i, v := range r.Perm(len(elements)) {
		n[i] = elements[v]	}
	return n

PHP array_rand

PHP original manual for array_rand [ show | php.net ]


(PHP 4, PHP 5, PHP 7)

array_randPick one or more random entries out of an array


mixed array_rand ( array $array [, int $num = 1 ] )

Picks one or more random entries out of an array, and returns the key (or keys) of the random entries. It uses a pseudo random number generator that is not suitable for cryptographic purposes.



The input array.


Specifies how many entries should be picked.

Return Values

When picking only one entry, array_rand() returns the key for a random entry. Otherwise, an array of keys for the random entries is returned. This is done so that random keys can be picked from the array as well as random values. Trying to pick more elements than there are in the array will result in an E_WARNING level error, and NULL will be returned.


Version Description
7.1.0 The internal randomization algorithm has been changed to use the » Mersenne Twister Random Number Generator instead of the libc rand function.
5.2.10 The resulting array of keys is no longer shuffled.


Example #1 array_rand() example

= array("Neo""Morpheus""Trinity""Cypher""Tank");
$rand_keys array_rand($input2);
$input[$rand_keys[0]] . "\n";
$input[$rand_keys[1]] . "\n";

See Also