Nombre aléatoire délimité PHP, non répétitif
P粉131455722
P粉131455722 2023-09-06 20:26:26
0
2
554

J'ai le code php suivant qui crée des nombres aléatoires lors de l'ajout d'un nombre statique ;100 et divise le nombre par | Cela fonctionne bien mais crée des numéros en double, comment puis-je empêcher la création de numéros en double ?

echo shd est 3;100|2;100, mais il n'y a pas de nombre répété avant ;100. Mais ce code génère parfois des nombres comme 2;100|2;100, qui sont répétés.

<?php
$kat_list=array(1,2,3,4);

$count_cat= rand(2,3);

for ($i = 1; $i <= $count_cat; $i++) {
    $rnd_cat= rand(0,count($kat_list)-1);
    $kats[]=$kat_list[$rnd_cat].'--100';

}
$line=implode('-',$kats);

 $line=str_replace('--', ';', $line);
 $line=str_replace('-', '|', $line);
 


 echo $line;

P粉131455722
P粉131455722

répondre à tous(2)
P粉512526720

Vous pouvez utiliser array_unique pour supprimer les doublons avant que le tableau n'implose

$kat_list=array(1,2,3,4);

$count_cat= rand(2,3);

for ($i = 1; $i <= $count_cat; $i++) {
    $rnd_cat= rand(0,(count($kat_list)-1));
    $kats[]=$kat_list[$rnd_cat].'--100';

}

$kats = array_unique($kats);

$line=implode('-',$kats);

$line=str_replace('--', ';', $line);
$line=str_replace('-', '|', $line);
 
 echo $line;
P粉807397973
$kat_list=array(1,2,3,4);
shuffle($kat_list); // shuffle list
$count=3;
for($i=0; $i<$count; ++$i) {
    // get the first N items of the shuffled list
    printf("%d ", $kat_list[$i]);
}

Essayez-le : https://3v4l.org/a31pv

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!