0
I would like to elaborate an array() where I can put: $arr = "argument1, argument2, argument3." ; And return only 1, 2 or 3, randomly. How can it be done?
0
I would like to elaborate an array() where I can put: $arr = "argument1, argument2, argument3." ; And return only 1, 2 or 3, randomly. How can it be done?
1
You can do it like this:
//Criando array
$a = array("red","green","blue","yellow","brown");
//Número máximo do rand
$max = (count($a) - 1);
//Resultado randômico
echo rand(0, $max);
echo $a[rand(0, $max)];
1
There are several alternatives.
random_int (PHP 7):
$array = ['um', 'array', 'qualquer'];
// Contagem de elementos da array:
$contagem = count($array);
// Gera a "randomização" (ex. '2'):
$gerador = random_int(0, ($contagem - 1));
# É necessário subtrair um porque existem 3 elementos, porém array começa em 0 até 2, ao invés de 0 até 3. Portanto reduzindo 1, irá fazer com que entre na condição de 0 até 2. ;)
// Seleciona o item gerado previamente (ex. 'qualquer'):
$final = $array[$gerador];
This method (random_int) is supposedly the safest!
array_rand (PHP 4, PHP 5, PHP 7):
$array = ['um', 'array', 'qualquer'];
// Gera a "randomização" (ex. '2'):
$gerador = array_rand($array);
// Seleciona o item gerado previamente (ex. 'qualquer'):
$final = $array[$gerador];
mt_rand (PHP 4, PHP 5, PHP 7):
$array = ['um', 'array', 'qualquer'];
// Contagem de elementos da array:
$contagem = count($array);
// Gera a "randomização" (ex. '2'):
$gerador = mt_rand(0, ($contagem - 1) );
# É necessário subtrair um porque existem 3 elementos, porém array começa em 0 até 2, ao invés de 0 até 3. Portanto reduzindo 1, irá fazer com que entre na condição de 0 até 2. ;)
// Seleciona o item gerado previamente (ex. 'qualquer'):
$final = $array[$gerador];
Browser other questions tagged php
You are not signed in. Login or sign up in order to post.
use the
rand()
/mt_rand()
on Intel has some problem?– rray
I don’t know how to do
– Sr. André Baill
If the key is numerical, it’s enough
$index = rand($min, $max); echo $arr[$index];
or$arr[rand(0,99)];
– rray
Would that be?
$a = array('PHP','Java','C#'); echo $a[array_rand($a)];
https://ideone.com/Tq2Xks– abfurlan