(PHP 8 >= 8.2.0)
Random\Randomizer::pickArrayKeys — 選擇隨機的陣列鍵值
從輸入的 array
中均勻地選取 num
個不同的陣列鍵值。
輸入 array
的每個鍵值都有相同的機率被回傳。
陣列鍵值的選擇取決於輸入 array
的內部結構。對於兩個相等的輸入陣列和兩個狀態相同的 Random\Engine,回傳的陣列鍵值可能不同,這取決於輸入陣列的建立方式。
array
要選取陣列鍵值的陣列。
num
要回傳的陣列鍵值數量;必須介於 1
和 array
中的元素數量之間。
num
小於 1
或大於 array
中的元素數量,則會擲出 ValueError。
Random\Randomizer::$engine
的 Random\Engine::generate() 方法擲出的 Throwable。
範例 #1 Random\Randomizer::pickArrayKeys() 範例
<?php
$r = new \Random\Randomizer();
$fruits = [ 'red' => '🍎', 'green' => '🥝', 'yellow' => '🍌', 'pink' => '🍑', 'purple' => '🍇' ];
// 挑選 2 個隨機陣列鍵值:
echo "鍵值: ", implode(', ', $r->pickArrayKeys($fruits, 2)), "\n";
// 再挑選 3 個:
echo "鍵值: ", implode(', ', $r->pickArrayKeys($fruits, 3)), "\n";
?>
上述範例將輸出類似以下的內容
Keys: yellow, purple Keys: red, green, yellow
範例 #2 挑選隨機值
<?php
$r = new \Random\Randomizer();
$fruits = [ 'red' => '🍎', 'green' => '🥝', 'yellow' => '🍌', 'pink' => '🍑', 'purple' => '🍇' ];
$keys = $r->pickArrayKeys($fruits, 2);
// 查詢選取鍵的值。
$selection = array_map(
static fn ($key) => $fruits[$key],
$keys
);
echo "值: ", implode(', ', $selection), "\n";
?>
上述範例將輸出類似以下的內容
Values: 🍎, 🍇