我有以下代码$n从$arrayPHP 数组中选取元素:
$n
$array
shuffle($array); $result = array_splice($array, 0, $n);
给定一个大数组,但只有几个元素(例如5out 10000),这相对较慢,因此我想对其进行优化,以使并非所有元素都必须改组。这些值必须是唯一的。
5
10000
我正在寻找性能最好的替代产品。我们可以假设它$array没有重复项并且被0索引了。
0
$randomArray = []; while (count($randomArray) < 5) { $randomKey = mt_rand(0, count($array)-1); $randomArray[$randomKey] = $array[$randomKey]; }
这将提供5个元素,而且没有重复项,而且很快。密钥将被保留。
注意:您必须确保$ array包含5个或更多的元素,或者添加某种检查以防止无限循环。