【发布时间】:2015-11-09 05:09:54
【问题描述】:
我有以下代码在 PHP 中从数组 $array 中选择 $n 元素:
shuffle($array);
$result = array_splice($array, 0, $n);
给定一个大数组,但只有几个元素(例如5 中的10000),这相对较慢,所以我想对其进行优化,以便不必对所有元素进行混洗。值必须是唯一的。
我正在寻找性能最高的替代方案。我们可以假设$array 没有重复并且是0-indexed。
【问题讨论】:
-
也读过,但我有点担心
array_flip在大型阵列上的性能。 -
@FabianSchmengler 感谢博文和基准测试。我认为您应该编辑您的问题,以简要解释哪种解决方案(两个有争议的解决方案)最适合未来读者在哪种情况下使用。哦!并且,在您的博客文章中添加所有详细信息的链接。该页面已存档于Internet Archive
标签: php arrays performance random shuffle