• PHP shuffle():随机打乱数组

    前面我们介绍了可以使用《array_rand() 函数》随机获取数组元素。在 PHP 中还有另一个函数,它能够将数组随机打乱,或者说它可以随机排序数组——shuffle() 函数。

    shuffle() 函数不仅会将数组随机打乱,还会删除数组原有的键名,并重新建立新的键名,函数的语法格式如下:

    shuffle($array)

    其中 $array 为待操作的数组。函数运行成功时会返回 TRUE,运行失败则返回 FALSE。

    提示:shuffle() 函数只对数组的第一维度适用,对于多维数组中第一维度之外的维度则无效。

    与数组排序相关的函数
    函数 说明
    sort() 对数组元素进行升序排序(从小到大)。
    rsort() 对数组元素进行降序排序(从大到小)。
    asort() 对数组元素进行升序排序(从小到大),并保持索引关系。
    arsort() 对数组元素进行降序排序(从大到小),并保持索引关系。
    shuffle() 对数组元素进行随机排序,也就是随机打乱数组。

    【示例】使用 shuffle() 函数打乱数组顺序。

    <?php
        $info = array(
            'id'       => 1234,
            'url'      => 'http://c.biancheng.net/php/',
            'language' => 'PHP',
            'article'  => 'shuffle()函数'
        );
        echo '<pre>';
        echo '数组打乱顺序前:';
        print_r($info);
        echo '数组打乱顺序后:';
        shuffle($info);
        print_r($info);
    ?>

    运行结果如下:

    数组打乱顺序前:Array
    (
        [id] => 1234
        [url] => http://c.biancheng.net/php/
        [language] => PHP
        [article] => shuffle()函数
    )
    数组打乱顺序后:Array
    (
        [0] => http://c.biancheng.net/php/
        [1] => PHP
        [2] => shuffle()函数
        [3] => 1234
    )

    与 array_rand() 函数类似,使用 shuffle() 函数同样可以实现生成随机验证码的功能,示例代码如下:

    <?php
        function verCode(){
            $arr    = array_merge(range('A','Z'), range('a', 'z'), range('1', '9'));
            shuffle($arr);
            $newArr = array_slice($arr, 0, 4);
            $str    = implode('', $newArr);
            return $str;
        }
        echo verCode().'<br>';
        echo verCode().'<br>';
        echo verCode().'<br>';
    ?>

    运行结果如下:

    WLmj
    ngqO
    EolQ

    注意:因为 shuffle() 函数是随机将数组打乱,所以每次执行的结果会不一样。

更多...

加载中...