Maison > Questions et réponses > le corps du texte
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粉5125267202023-09-07 14:36:59
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粉8073979732023-09-07 11:50:21
$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