Random Array between Specific Values

Asked

Viewed 73 times

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?

  • use the rand()/mt_rand() on Intel has some problem?

  • I don’t know how to do

  • If the key is numerical, it’s enough $index = rand($min, $max); echo $arr[$index]; or $arr[rand(0,99)];

  • Would that be? $a = array('PHP','Java','C#'); echo $a[array_rand($a)]; https://ideone.com/Tq2Xks

2 answers

1

You can do it like 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);
  • 3

    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!

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

Browser other questions tagged

You are not signed in. Login or sign up in order to post.