php帶分隔符號的隨機數,不重複
P粉131455722
P粉131455722 2023-09-06 20:26:26
0
2
566

我有下面的 php 程式碼,它在添加靜態數字 ;100 時創建隨機數,並用 | 除數字。它運作良好,但會創建重複的數字,如何使其防止重複出現的數字?

echo shd 為 3;100|2;100,但 ;100 之前沒有重複的數字。但此代碼有時會輸出類似 2;100|2;100 的數字,這些數字是重複的。

<?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

全部回覆(2)
P粉512526720

您可以在陣列內爆之前使用 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;
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]);
}

試試看:https://3v4l.org/a31pv

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板