PHP 使用数组随机生成4位验证码

我们要生成4位随机验证码,首先要在A-Z,a-z,0-9之间随机产生4位。此时我们会用到一个函数range(),这个函数是建立一个包含指定范围单元的数组,返回类型为数组。代码如下:

<?php

$arr1 = range('a','z');
$arr2 = range('A','Z');
$arr3 = range(0,9);

//产生指定范围内的数组并输出
print_r($arr1);
print_r($arr2);
print_r($arr3);

?>

然后我们需要将这些范围内的值合并到一个数组中,此时我们需要的函数是:array_merge(),这个函数是将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面,返回结果同样为数组。代码如下:

<?php

$arr = array_merge($arr1,$arr2,$arr3);
print_r($arr);//合并将输出

?>

用到这人函数时应注意:如果数组的键为相同的数字时,后一个数组中的值并不会覆盖前一个的值;但如是数组的键为相同的字符串时,则后一个数组中的值将会覆盖前一个的值。

举个例子:

<?php

$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
print_r(array_merge($a1,$a2));

?>

输出结果为:

但是如果键为数字时,这样的情况将不会出现中,举个例子:

<?php


$arr1 = array(1 => '张三',2 => '李四', 5 => '王五');
$arr2 = array(2 => '孙七', 7 => '刘八', 8 => '周九');
print_r(array_merge($arr1,$arr2));


?>

输出结果为:

如果你想完全保留原有的数组并只想新的数组附加到后面,用+运算符。

下一步我们需要随机从中抽取4个元素,应使用的函数为array_rand(),这个函数是从数组中随机取出一个或多个随机的单元,并支架随机条目的一个或多个键。

具体代码如下:

<?php 

$keys = array_rand($arr,4);

?>

再利用foreach循环随机产生4位即可,总的代码如下:

<?php
header('content-type:text/html;charset=utf-8');

$arr1 = range('a','z');
$arr2 = range('A','Z');
$arr3 = range(0,9);

$arr = array_merge($arr1,$arr2,$arr3);

//随机从中抽取4个元素
$keys = array_rand($arr,4);
$yzm = '';
foreach($keys as $k ){
	$yzm .= $arr[$k];
}
echo $yzm;

?>

猜你喜欢

转载自blog.csdn.net/Temperament___/article/details/84031113