gpt4 book ai didi

php - 从 PHP 数组中高效地挑选 n 个随机元素(无随机播放)

转载 作者:可可西里 更新时间:2023-10-31 23:06:04 25 4
gpt4 key购买 nike

我有以下代码从 PHP 中的数组 $array 中选取 $n 元素:

shuffle($array);
$result = array_splice($array, 0, $n);

给定一个大数组但只有几个元素(例如 10000 中的 5),这是相对较慢的,所以我想优化它,这样就不会所有元素都必须重新洗牌。这些值必须是唯一的。

我正在寻找性能最好的替代方案。我们可以假设 $array 没有重复项并且是 0 索引的。

最佳答案

$randomArray = [];
while (count($randomArray) < 5) {
$randomKey = mt_rand(0, count($array)-1);
$randomArray[$randomKey] = $array[$randomKey];
}

这将提供恰好 5 个元素,没有重复,而且速度非常快。 key 将被保留。

注意:您必须确保 $array 有 5 个或更多元素或添加某种检查以防止无限循环。

关于php - 从 PHP 数组中高效地挑选 n 个随机元素(无随机播放),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32035566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com