前面我们介绍了可以使用《array_rand() 函数》随机获取数组元素。在 PHP 中还有另一个函数,它能够将数组随机打乱,或者说它可以随机排序数组——shuffle() 函数。
shuffle() 函数不仅会将数组随机打乱,还会删除数组原有的键名,并重新建立新的键名,函数的语法格式如下:
其中 $array 为待操作的数组。函数运行成功时会返回 TRUE,运行失败则返回 FALSE。
提示:shuffle() 函数只对数组的第一维度适用,对于多维数组中第一维度之外的维度则无效。
函数 | 说明 |
---|---|
sort() | 对数组元素进行升序排序(从小到大)。 |
rsort() | 对数组元素进行降序排序(从大到小)。 |
asort() | 对数组元素进行升序排序(从小到大),并保持索引关系。 |
arsort() | 对数组元素进行降序排序(从大到小),并保持索引关系。 |
shuffle() | 对数组元素进行随机排序,也就是随机打乱数组。 |
【示例】使用 shuffle() 函数打乱数组顺序。
<?php
$info = array(
'id' => 1234,
'url' => 'http://www.cdsy.xyz/computer/programme/PHP/',
'language' => 'PHP',
'article' => 'shuffle()函数'
);
echo '<pre>';
echo '数组打乱顺序前:';
print_r($info);
echo '数组打乱顺序后:';
shuffle($info);
print_r($info);
?>
运行结果如下:
与 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>';
?>
运行结果如下:
注意:因为 shuffle() 函数是随机将数组打乱,所以每次执行的结果会不一样。