Random\Randomizer::pickArrayKeys

(PHP 8 >= 8.2.0)

Random\Randomizer::pickArrayKeysSeleciona chaves aleatórias de um array

Descrição

public Random\Randomizer::pickArrayKeys(array $array, int $num): 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.

Cuidado

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.

Parâmetros

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.

Valor Retornado

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().

Erros/Exceções

Exemplos

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: 🍎, 🍇

Veja Também

  • array_keys() - Retorna todas as chaves ou uma parte das chaves de um array