前面我们介绍了可以使用《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() 函数是随机将数组打乱,所以每次执行的结果会不一样。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/23853.html