PHP Conference Japan 2024

Random\Randomizer::pickArrayKeys

(PHP 8 >= 8.2.0)

Random\Randomizer::pickArrayKeys选择随机数组键

描述

public Random\Randomizer::pickArrayKeys(数组 $array, 整数 $num): 数组

均匀地选择输入arraynum个不同的数组键。

输入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 "Keys: ", implode(', ', $r->pickArrayKeys($fruits, 2)), "\n";

// 再选择 3 个:
echo "Keys: ", 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
"Values: ", implode(', ', $selection), "\n";
?>

以上示例将输出类似以下内容

Values: 🍎, 🍇

参见

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top