如何从数组中获取比数组更多的随机元素?

hashtagbad

我有这段代码从我的数组中获取3个随机值:

$maps_clean = array_filter($find_league_maps);
$random_maps = array_rand($maps_clean,3);

$league_match_maps = ",".$maps_clean[1].",".$maps_clean[2].",".$maps_clean[3].",";

只要数组具有至少3个值,此方法就起作用。现在,我想修改我的代码,以便当我想要比数组中更多的随机值时,它将再次从数组中获取新值。是的,这意味着我可以多次拥有一些值。

我该怎么做?

里齐尔123

您可以使用一个简单的while循环及其shuffle()内部的数组,然后使用获取所需的任意随机元素array_slice()现在,如果您要获得比数组元素更多的随机值,则可以简单地获取整个数组,进入下一个迭代,并从新的随机数组中获取所需的其余部分。

代码

<?php

    $arr = [1,2,3,4];


    $random = 5;
    $result = [];

    while(count($result) != $random){
        shuffle($arr);
        $result = array_merge($result, array_slice($arr, 0, $random - count($result))); 
    }

    print_r($result);

?>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章