首页 > 解决方案 > 获取数组中 20% 元素的方法 - PHP

问题描述

我有一个包含 n 个元素的数组,我需要将这些元素中的 20% 随机放入另一个数组中。有什么功能可以实现这个吗?

目前我能想到的是这样的:

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

有没有更优化的方法?

标签: phparraysrandom

解决方案


你可以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));

推荐阅读