加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP array_rand():随机获取数组元素

发布时间:2020-12-13 17:59:41 所属栏目:PHP教程 来源:网络整理
导读:随机获取数组元素就是在不改变数组的基础上,从数组中随机的选取一个或多个元素,比如我们在网页上随机显示不同的广告,或者推荐不同的文章等等,PHP 中提供了 array_rand() 函数来帮助我们完成这一功能,下面就来详细介绍一下这个函数。 array_rand() 函数可
随机获取数组元素就是在不改变数组的基础上,从数组中随机的选取一个或多个元素,比如我们在网页上随机显示不同的广告,或者推荐不同的文章等等,PHP 中提供了 array_rand() 函数来帮助我们完成这一功能,下面就来详细介绍一下这个函数。

array_rand() 函数可以从数组中随机获取一个或多个元素,并返回获取的数组键值。该函数使用了伪随机数产生算法,所以不适合密码学场景,其语法格式如下:

array_rand($array [,$num = 1])

其中,$array 为待操作的数组;$num 为可选参数,用于指明想要从 $array 中获取多少个数组元素。

提示:如果省略 $num 参数,函数默认会返回一个随机的数组键名,如果获取的数量($num)超过了 $array 的长度,就会导致 E_WARNING 错误,并返回 NULL。

如果只需要获取一个元素,array_rand() 函数会返回获取到的键名,否则就返回包含随机键名的数组。函数运行成功后,就可以根据随机获取到的数组键值来获取具体的值。

【示例】使用 array_rand() 函数随机获取数组元素。
<?php
    $array = array(
        'name'  => 'C语言中文网','url'   => 'http://c.biancheng.net/php/','title' => 'PHP教程','article' => 'array_rand() 函数'
    );

    echo '<pre>';
    var_dump(array_rand($array));
    var_dump(array_rand($array,2));
    var_dump(array_rand($array,5));
?>
运行结果如下:

string(7) "article"
array(2) {
? [0]=>
? string(3) "url"
? [1]=>
? string(5) "title"
}
array(2) {
? [0]=>
? string(4) "name"
? [1]=>
? string(3) "url"
}
NULL

鉴于 array_rand() 函数的特点,我们可以使用它来实现生成随机验证码的功能,代码如下所示:
<?php
    function verCode(){
        $arr = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9'
        );
        $newArr = array_rand($arr,4);
        $str = '';
        foreach ($newArr as $key => $value) {
            $str .= $arr[$value];
        }
        return $str;
    }
    echo verCode().'<br>';
    echo verCode().'<br>';
    echo verCode().'<br>';
?>
运行结果如下:

EFG5
jIO0
pw56

如果将自定义函数 verCode() 中数组 $arr 的值换成一个个中文字符的话,还能实现类似中文验证码的功能。?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读