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

loading...


2

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

目前我能想到的是:

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

有更优化的方式吗?

loading...

4回答

  • 0

    要通过一个函数调用获取两个数组,请使用array_splice函数 . 后

    shuffle($array);
    $twenty = array_splice($array, floor(count($array) / 5 * 4));
    

    二十美元将持有1/5的源阵列和$ array - 其他项目


  • 2

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

  • 8

    Shuffle是这种情况下最简单的解决方案

    $array = [1,2,3,4]
    shuffle($array);
    $firstSlice = array_slice($array , 0 , count($array)/2);
    $secondSlice = array_slice($array , count($array)/2 , count($array));
    

  • 2

    最简单的解决方案可能是使用shuffle

    shuffle($orders);
    for ($i = 0; $i < count($orders) / 5; $i++) {
        // do something with the first 20% of elements
    }
    for (; $i < count($orders); $i++) {
        // do something with the rest of the array
    }
    
评论

暂时没有评论!