Random\Randomizer::pickArrayKeys
(PHP 8 >= 8.2.0)
Random\Randomizer::pickArrayKeys — Select random array keys
说明
Uniformly selects num distinct array keys of the input array.
Each key of the input array is equally likely to be returned.
The selection of the array keys depends on the internal structure of the input
array. The returned array keys might be different for
two equal input arrays and two Random\Engines with
identical state, depending on how the input arrays have been created.
参数
array-
The array whose array keys are selected.
num-
The number of array keys to return; must be between
1and the number of elements inarray.
返回值
An array containing num distinct array keys of array.
The returned array will be a list (array_is_list()). It will be a subset of the array returned by array_keys().
错误/异常
-
If
numis less than1or greater than the number of elements inarray, a ValueError will be thrown. -
底层
Random\Randomizer::$engine的 Random\Engine::generate() 方法抛出的任何 Throwable。
示例
示例 #1 Random\Randomizer::pickArrayKeys() example
<?php
$r = new \Random\Randomizer();
$fruits = [ 'red' => '🍎', 'green' => '🥝', 'yellow' => '🍌', 'pink' => '🍑', 'purple' => '🍇' ];
// Pick 2 random array keys:
echo "Keys: ", implode(', ', $r->pickArrayKeys($fruits, 2)), "\n";
// Pick another 3:
echo "Keys: ", implode(', ', $r->pickArrayKeys($fruits, 3)), "\n";
?>以上示例的输出类似于:
Keys: yellow, purple Keys: red, green, yellow
示例 #2 Picking random values
<?php
$r = new \Random\Randomizer();
$fruits = [ 'red' => '🍎', 'green' => '🥝', 'yellow' => '🍌', 'pink' => '🍑', 'purple' => '🍇' ];
$keys = $r->pickArrayKeys($fruits, 2);
// Look up the values for the picked keys.
$selection = array_map(
static fn ($key) => $fruits[$key],
$keys
);
echo "Values: ", implode(', ', $selection), "\n";
?>以上示例的输出类似于:
Values: 🍎, 🍇
参见
- array_keys() - 返回数组中部分的或所有的键名
用户贡献的备注
备份地址:http://www.lvesu.com/blog/php/random-randomizer.pickarraykeys.php