我有下面的 php 程式碼,它在添加靜態(tài)數(shù)字 ;100 時創(chuàng)建隨機數(shù),並用 | 除數(shù)字。它運作良好,但會創(chuàng)建重複的數(shù)字,如何使其防止重複出現(xiàn)的數(shù)字?
echo shd 為 3;100|2;100,但 ;100 之前沒有重複的數(shù)字。但此代碼有時會輸出類似 2;100|2;100 的數(shù)字,這些數(shù)字是重複的。
<?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;
您可以在陣列內(nèi)爆之前使用 array_unique 刪除重複項
$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;
$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]); }