PHP array_rand随机获取数组中的数据

本文介绍了如何使用PHP实现从数组中随机选取指定数量元素的功能,包括输入验证、数据处理函数和结果的打印。通过示例展示了不同随机数选择的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、代码

  • 注意array_rand()2个参数;第二个参数用来确定要选出几个元素。如果选出的元素不止一个,则返回包含随机键名的数组,否则返回该元素的键名。
public function test() {
    $data = ['小红', '小橙', '小黄', '小绿', '小青', '小蓝', '小紫'];

    $randNumber = isset($_GET['randNumber']) ? $_GET['randNumber'] : 1; //随机的数量
    if (!is_numeric($randNumber)) {
        exit('数据格式错误');
    }
    if ($randNumber <= 0 || $randNumber > count($data)) {
        exit('随机数取值范围[1, ' . count($data) . ']');
    }

    $result = [];
    self::handleData($data, $randNumber, $result);

    //结果打印:
    echo "随机选取 [ {$randNumber} ] 个用户,结果为:<br/>";
    foreach ($result as $value) {
        echo $value . '<br/>';
    }
}

/**
 * 数据处理
 * @param $data 待处理的数据
 * @param $randNumber 随机返回的个数
 * @param $result 结果数据
 */
public function handleData($data, $randNumber, &$result) {
    $randKeys = array_rand($data, $randNumber);
    if ($randNumber == 1) { //返回的是随机的键名
        $result[] = $data[$randKeys];
    } else { //返回的是随机键名数组
        foreach ($randKeys as $value) {
            $result[] = $data[$value];
        }
    }
}

二、打印

  • randNumber=hello
数据格式错误
  • randNumber=0
随机数取值范围[1, 7]
  • randNumber=8
随机数取值范围[1, 7]
  • randNumber=1
随机选取 [ 1 ] 个用户,结果为:
小青
  • randNumber=3
随机选取 [ 3 ] 个用户,结果为:
小橙
小绿
小紫
  • randNumber=7
随机选取 [ 7 ] 个用户,结果为:
小红
小橙
小黄
小绿
小青
小蓝
小紫
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值