Mehrere Möglichkeiten, Zufallszahlen in PHP zu generieren

高洛峰
Freigeben: 2016-10-21 10:06:41
Original
1448 Leute haben es durchsucht

Die folgende Methode verwende ich oft, sie ist benutzerfreundlicher

/**
 * 生成随机字符串
 * @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;
}
Nach dem Login kopieren


Zufallszahlen fester Länge generieren:

function generate_code($length = 4) {     
    return rand(pow(10,($length-1)), pow(10,$length)-1); 
}
Nach dem Login kopieren

Der folgende Effekt ist der gleiche wie oben, aber die Schreibmethode ist anders.

function generate_code($length = 4) {     
    $min = pow(10 , ($length - 1));     
    $max = pow(10, $length) - 1;     
    return rand($min, $max); 
}
Nach dem Login kopieren

Zum Beispiel:

echo generate_code(5);
//输出结果: 56482
Nach dem Login kopieren

Erneut aktualisieren, damit sich die Zahlen und die Reihenfolge ändern.

Die beiden oben genannten Codes sind relativ einfach, aber sie können nur Zahlen generieren. Wer die Einfachheit des Codes anstrebt, kann

$arr=range(1,10); 
shuffle($arr); 
foreach($arr as $values) {   
    echo $values.","; 
}
 
//输出结果:10,5,7,8,6,2,9,4,1,3,1
Nach dem Login kopieren

verwenden, das hauptsächlich auf der in PHP integrierten Funktion range() basiert generieren, Zufallszahlen in zwei Parameterbereichen generieren und mehrere Zahlensätze generieren können. Dieser Typ ist starrer und nicht alle werden in die Methode eingefügt, Sie können ihn jedoch entsprechend Ihren Anforderungen verwenden.


Die folgende unterscheidet sich nicht wesentlich von der obigen, außer dass die Generierungsmethode unterschiedlich ist und hauptsächlich auf der Funktion array_unique basiert, um sie zu generieren.

$arr=array(); 
while(count($arr)<10) {   
    $arr[]=rand(1,10);   
    $arr=array_unique($arr); 
} 
echo implode(" ",$arr);
Nach dem Login kopieren

Ich werde hier nicht näher auf andere Generierungsmethoden eingehen. Wir müssen uns nur an die häufig verwendeten und effizienteren Methoden erinnern. Während des Entwicklungsprozesses können wir sie an unsere Bedürfnisse anpassen unsere eigene PHP-Zufallszahlenfunktion.

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage