为什么80%的码农都做不了架构师?>>>
下面这种方式是我经常使用的,比较人性化
废话不多,直接上码
/*** 生成随机字符串* @param int $length 要生成的随机字符串长度* @param string $type 随机码类型:0,数字+大写字母;1,数字;2,小写字母;3,大写字母;4,特殊字符;-1,数字+大小写字母+特殊字符* @return string*/
function randCode($length = 5, $type = 0) {$arr = array(1 => "0123456789", 2 => "abcdefghijklmnopqrstuvwxyz", 3 => "ABCDEFGHIJKLMNOPQRSTUVWXYZ", 4 => "~@#$%^&*(){}[]|");if ($type == 0) {array_pop($arr);$string = implode("", $arr);} else if ($type == "-1") {$string = implode("", $arr);} else {$string = $arr[$type];}$count = strlen($string) - 1;for ($i = 0; $i < $length; $i++) {$str[$i] = $string[rand(0, $count)];$code .= $str[$i];}return $code;
}
生成定长随机数:
function generate_code($length = 4) { return rand(pow(10,($length-1)), pow(10,$length)-1);
}
下面跟上面的效果一样,只是写法不一样而已。
function generate_code($length = 4) { $min = pow(10 , ($length - 1)); $max = pow(10, $length) - 1; return rand($min, $max);
}
如:
echo generate_code(5);
输出:
再刷新一次,所以数字和顺序都会变动。
以上这两种代码比较简洁,但也只能生成数字,追求代码简洁的可以使用
$arr=range(1,10);
shuffle($arr);
foreach($arr as $values) { echo $values.",";
}
输出
这种主要是靠php的内置函数range()来生成,生成两个参数范围的随机数,而且他们是可以生成多组数字,这种就比较呆板了,而且不是都放在方法里面,不过大家可以根据需求来使用。
以下这种跟上面这种没多大区别,只是生成的方法不太一样,主要是靠array_unique函数来生成。
$arr=array();
while(count($arr)<10) { $arr[]=rand(1,10); $arr=array_unique($arr);
}
echo implode(" ",$arr);