我有以下代码$n从$arrayPHP中的数组中选择元素:
shuffle($array);
$result = array_splice($array, 0, $n);
Run Code Online (Sandbox Code Playgroud)
给定一个大数组但只有少数元素(例如5out 10000),这是相对较慢的,所以我想优化它,以便不是所有元素都必须被洗牌.值必须是唯一的.
我正在寻找最有效的替代方案.我们可以假设$array没有重复并且是0索引的.
我有这样一个数组:
$animals = array (
'giraffe',
'lion',
'hippo',
'dog',
'cat',
'rabbit',
'fly',
'hamster',
'gerbil'
'goldfish'
);
Run Code Online (Sandbox Code Playgroud)
那就是我希望数组与这些2分开的顺序- hamster和gerbil
我想随机选择哪个先出现。我知道我可以使用:
shuffle($animals);
Run Code Online (Sandbox Code Playgroud)
要将它们全部随机化,但是我只想为这2个做。所以,如果我要这样做,print_r($animals)我可能会在仓鼠之前先让仓鼠来,而在仓鼠之前又要让沙鼠来。