在数组中获取20%元素的方法 - PHP

The*_*e50 2 php arrays random

我有一个n个元素的数组,我需要将20%的这些元素随机存入另一个数组.有没有可以实现这个目标的功能?

目前我能想到的是:

foreach ($orders as $order) {
    if (rand(1, 100) > 80) {
        echo('20%');
    } else {
        echo('80%');
    }
}
Run Code Online (Sandbox Code Playgroud)

有更优化的方式吗?

Jer*_*dev 8

您可以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)