PHP shuffle():随机打乱数组
前面我们介绍了可以使用《array_rand() 函数》随机获取数组元素。在 PHP 中还有另一个函数,它能够将数组随机打乱,或者说它可以随机排序数组——shuffle() 函数。
shuffle() 函数不仅会将数组随机打乱,还会删除数组原有的键名,并重新建立新的键名,函数的语法格式如下:
	
【示例】使用 shuffle() 函数打乱数组顺序。
	
shuffle() 函数不仅会将数组随机打乱,还会删除数组原有的键名,并重新建立新的键名,函数的语法格式如下:
shuffle($array)
其中 $array 为待操作的数组。函数运行成功时会返回 TRUE,运行失败则返回 FALSE。提示:shuffle() 函数只对数组的第一维度适用,对于多维数组中第一维度之外的维度则无效。
| 函数 | 说明 | 
|---|---|
| sort() | 对数组元素进行升序排序(从小到大)。 | 
| rsort() | 对数组元素进行降序排序(从大到小)。 | 
| asort() | 对数组元素进行升序排序(从小到大),并保持索引关系。 | 
| arsort() | 对数组元素进行降序排序(从大到小),并保持索引关系。 | 
| shuffle() | 对数组元素进行随机排序,也就是随机打乱数组。 | 
【示例】使用 shuffle() 函数打乱数组顺序。
<?php
    $info = array(
        'id'       => 1234,
        'url'      => 'https://www.xinbaoku.com/php/',
        'language' => 'PHP',
        'article'  => 'shuffle()函数'
    );
    echo '<pre>';
    echo '数组打乱顺序前:';
    print_r($info);
    echo '数组打乱顺序后:';
    shuffle($info);
    print_r($info);
?>
运行结果如下:
	数组打乱顺序前:Array
	(
	    [id] => 1234
	    [url] => https://www.xinbaoku.com/php/
	    [language] => PHP
	    [article] => shuffle()函数
	)
	数组打乱顺序后:Array
	(
	    [0] => https://www.xinbaoku.com/php/
	    [1] => PHP
	    [2] => shuffle()函数
	    [3] => 1234
	)
<?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
所有教程
- C语言入门
 - C语言编译器
 - C语言项目案例
 - 数据结构
 - C++
 - STL
 - C++11
 - socket
 - GCC
 - GDB
 - Makefile
 - OpenCV
 - Qt教程
 - Unity 3D
 - UE4
 - 游戏引擎
 - Python
 - Python并发编程
 - TensorFlow
 - Django
 - NumPy
 - Linux
 - Shell
 - Java教程
 - 设计模式
 - Java Swing
 - Servlet
 - JSP教程
 - Struts2
 - Maven
 - Spring
 - Spring MVC
 - Spring Boot
 - Spring Cloud
 - Hibernate
 - Mybatis
 - MySQL教程
 - MySQL函数
 - NoSQL
 - Redis
 - MongoDB
 - HBase
 - Go语言
 - C#
 - MATLAB
 - JavaScript
 - Bootstrap
 - HTML
 - CSS教程
 - PHP
 - 汇编语言
 - TCP/IP
 - vi命令
 - Android教程
 - 区块链
 - Docker
 - 大数据
 - 云计算