我有一个n个元素的数组,我需要将20%的这些元素随机存入另一个数组.有没有可以实现这个目标的功能?
目前我能想到的是:
foreach ($orders as $order) {
if (rand(1, 100) > 80) {
echo('20%');
} else {
echo('80%');
}
}
Run Code Online (Sandbox Code Playgroud)
有更优化的方式吗?
您可以shuffle使用数组,然后获取前20%的元素.
$array = [1, 2, 3, 4];
shuffle($array);
$twenty = array_slice($array, 0, floor(count($array) / 5));
$eighty = array_slice($array, floor(count($array) / 5));
Run Code Online (Sandbox Code Playgroud)