In diesem Artikel wird hauptsächlich die Verwendung von PHP zum Generieren sich nicht wiederholender Zufallszahlen basierend auf automatisch inkrementierten Daten vorgestellt. Der Artikel bietet einen bestimmten Referenzwert für alle Freunde, die ihn benötigen Schauen Sie sich das unten zusammen an.
Dieser Artikel stellt hauptsächlich den relevanten Inhalt von PHP vor, um sich nicht wiederholende Zufallszahlen basierend auf sich selbst erhöhenden Daten zu generieren. Es ist sinnlos, weiter unten mehr zu sagen Code:
Der Schlüssel Der Punkt ist, dass die Kontrolle über die Anzahl der Stellen der generierten selbstansteigenden Daten
an zwei Stellen erfolgt
1. Wenn das $base-Basisarray ein 8-Bit-Array ist, muss es 8 Ziffern haben
2. $i ist eine automatisch inkrementierende Zahl darf 8 Ziffern nicht überschreiten
Das Ergebnis der aktuellen einfachen Analyse ist das obige. Wenn Sie eine globale Nichtduplizierung wünschen, wird empfohlen, uuid oder ähnliches zu verwenden.
Beispielcode:
function swap($n,$base) { $mask = 19; //1 + 2 + 16 $n = intval($n, 10); $idx = $n & $mask;//取出标志位 $xor = $base[$idx] ^ $n;//根据标识为找到对应的base,异或n return (($xor | $mask) ^ $mask) | $idx;//覆盖标识位 } $newArray=[]; $base = array ( 0 => 1918407, 1 => 5529570, 2 => 6527234, 3 => 6550962, 4 => 8054672, 5 => 3141234, 6 => 2125630, 7 => 6978033, 8 => 4623630, 9 => 4736420, 10 => 7767295, 11 => 9679880, 12 => 1665600, 13 => 6044373, 14 => 4661383, 15 => 5771843, 16 => 2206123, 17 => 5685396, 18 => 5571647, 19 => 7178311, ); for ($i=0;$i<1000000;$i++) { $newArray[]= swap($i,$base)."\r\n"; }
Das obige ist der detaillierte Inhalt vonDie beim automatischen Inkrementieren von PHP-Daten generierten Zufallszahlen werden nicht wiederholt.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!