(PHP 8 >= 8.2.0)
Random\Randomizer::pickArrayKeys — Seleciona chaves aleatórias de um array
Seleciona uniformemente num
chaves de array distintas do array
de entrada.
Cada chave do array
de entrada tem a mesma probabilidade de ser retornada.
A seleção das chaves do array depende da estrutura interna do
array
de entrada. As chaves do array retornadas podem ser diferentes para
dois arrays de entrada iguais e dois Random\Engines com
estado idêntico, dependendo de como os arrays de entrada foram criados.
array
O array cujas chaves são selecionadas.
num
O número de chaves de array a serem retornadas; deve estar entre 1
e o número de elementos no array
.
Um array contendo num
chaves de array distintas de array
.
O array retornado será uma lista (array_is_list()). Será um subconjunto do array retornado por array_keys().
num
for menor que 1
ou
maior que o número de elementos em array
, um
ValueError será gerado.
Random\Randomizer::$engine
subjacente.
Exemplo #1 Exemplo de Random\Randomizer::pickArrayKeys()
<?php
$r = new \Random\Randomizer();
$frutas = [ 'vermelho' => '🍎', 'verde' => '🥝', 'amarelo' => '🍌', 'rosa' => '🍑', 'roxo' => '🍇' ];
// Escolhe 2 chaves de array aleatórias:
echo "Chaves: ", implode(', ', $r->pickArrayKeys($frutas, 2)), "\n";
// Escolhe outras 3:
echo "Chaves: ", implode(', ', $r->pickArrayKeys($frutas, 3)), "\n";
?>
O exemplo acima produzirá algo semelhante a:
Chaves: amarelo, roxo Chaves: vermelho, verde, amarelo
Exemplo #2 Escolhendo valores aleatórios
<?php
$r = new \Random\Randomizer();
$frutas = [ 'vermelho' => '🍎', 'verde' => '🥝', 'amarelo' => '🍌', 'rosa' => '🍑', 'roxo' => '🍇' ];
$chaves = $r->pickArrayKeys($frutas, 2);
// Procura os valores das chaves escolhidas.
$selection = array_map(
static fn ($chave) => $frutas[$chave],
$chaves
);
echo "Valores: ", implode(', ', $selection), "\n";
?>
O exemplo acima produzirá algo semelhante a:
Valores: 🍎, 🍇