I have an array of 30 values and I need to extract from this array 3 different random values. How can I do it?
Use the numpy. random. choice() function to generate the random choices and samples from a NumPy multidimensional array. Using this function we can get single or multiple random numbers from the n-dimensional array with or without replacement.
What you propose is the best solution there is - choose a random index and then use the element at this index. If your question is how to get a random integer, use the built-in function rand() .
Random(direct) access implies the ability to access any entry in a array in constant time (independent of its position in the array and of array's size). And that is big advantage. It is typically contrasted to sequential access.
I'm not sure why bother using array_rand()
at all as it's just an extra function call for seemingly no reason. Simply shuffle()
and slice the first three elements:
shuffle($array);
print_r(array_slice($array, 0, 3));
Shamelessly stolen from the PHP manual:
<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>
http://us2.php.net/array_rand
Note that, as of PHP 5.2.10, you may want to shuffle (randomize) the keys that are returned via shuffle($rand_keys)
, otherwise they will always be in order (smallest index first). That is, in the above example, you could get "Neo, Trinity" but never "Trinity, Neo."
If the order of the random elements is not important, then the above code is sufficient.
use shuffle($array)
then array_rand($array,3)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With