Random Array between specific values

0

I would like to create an array () where I can put: $ arr="argument1, argument2, argument3 .."; And return only 1, 2 or 3, randomly. How can it be done?

    
asked by anonymous 15.07.2016 / 22:24

2 answers

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 supposed to be the safest!

See more in the documentation

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];

See more in the documentation

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];

See more in the documentation

    
16.07.2016 / 02:55
1

You can do this:

array_rand

//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);
    
15.07.2016 / 22:44