PHP Conference Japan 2024

Random\Randomizer::pickArrayKeys

(PHP 8 >= 8.2.0)

Random\Randomizer::pickArrayKeys選擇隨機的陣列鍵值

說明

public Random\Randomizer::pickArrayKeys(陣列 $array, 整數 $num): 陣列

從輸入的 array 中均勻地選取 num 個不同的陣列鍵值。

輸入 array 的每個鍵值都有相同的機率被回傳。

注意事項

陣列鍵值的選擇取決於輸入 array 的內部結構。對於兩個相等的輸入陣列和兩個狀態相同的 Random\Engine,回傳的陣列鍵值可能不同,這取決於輸入陣列的建立方式。

參數

array

要選取陣列鍵值的陣列。

num

要回傳的陣列鍵值數量;必須介於 1array 中的元素數量之間。

回傳值

一個包含 arraynum 個不同陣列鍵值的 陣列

回傳的 陣列 將會是一個列表(array_is_list())。它將會是 array_keys() 回傳的 陣列 的子集。

錯誤/例外

範例

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

另請參閱

新增註釋

使用者貢獻的註釋

此頁面沒有使用者貢獻的註釋。
To Top