Cet article présente principalement comment utiliser PHP pour générer des nombres aléatoires non répétitifs basés sur des données d'incrémentation automatique. L'article fournit un exemple de code détaillé pour votre référence et votre étude. Il a une certaine valeur de référence pour tous les amis qui en ont besoin. jetez un œil ensemble ci-dessous.
Cet article présente principalement le contenu pertinent de PHP pour générer des nombres aléatoires non répétitifs basés sur des données auto-incrémentées. Il est partagé pour la référence et l'apprentissage de chacun. Il est inutile d'en dire plus ci-dessous et d'aller directement au. code :
La clé Le fait est que le contrôle du nombre de chiffres des données auto-croissantes générées
se trouve à deux endroits
1. Si le tableau de base $base est un tableau de 8 bits, il doit comporter 8 chiffres
2. $i est un nombre auto-incrémenté. ne peut pas dépasser 8 chiffres
Le résultat de l'analyse simple actuelle est le ci-dessus. Si vous souhaitez une non-duplication globale, il est recommandé d'utiliser uuid ou similaire.
Exemple de code :
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"; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!