range('A','Z');輸出A~Z,26個大寫字母 range('a','z');range(0,9);
array_merge($數組名,···) 合並數組,支持多個。
數組下標重復就會完全重新索引,字符串型相同即重復下標,後出現的元素值會覆蓋前面的元素值。
array_rand(數組名,n);隨機地從數組內取得n個元素的下標。取得n個數的集合數組是按從小到大的順序排列的。
shuffle(& 數組名);打亂數組內元素的順序,參數是引用傳遞!會打亂原數組。
<?php
$upper_chars = range('A','Z');
$lower_chars = range('a','z');
$chars = array_merge($upper_chars,$lower_chars,range(0,9));
//var_dump($chars);
echo '<hr>';
$rand_key = array_rand($chars,4); //隨機獲取數組中4個元素的下標,獲取的元素為一個集合數組。
//var_dump($rand_key); //取得結果4個數的集合輸出時按從小到大的排序輸出的
echo '<br>';
$new_key = shuffle($rand_key); //所以,這裡要用到shuffle函數打亂數組內元素的順序,shuffle(& $rand_key)
//var_dump($rand_key); //參數是引用傳遞!會打亂原數組。
//var_dump($new_key); //返回值true true/false
foreach($rand_key as $v){
echo $chars[$v]; //利用foreach 循環每4個隨機字符輸出。驗證碼內部字符。
}