我目前正在處理項目,它需要安排一個數組,使得不會有相同的數字連續出現。排列數組中的數字PHP
讓$a = [4,1,2,1,3,4,4,4]
,這裏數字4連續來。我需要避免和所需的輸出必須或simiar到$a = [4,1,4,1,4,2,3,4]
我做了什麼:
$a=[4,1,2,1,3,4,4,4];
for($i=0;$i<count($a)-1;$i++)
{
if($a[$i]==$a[$i+1])
{
$k=$j=$i+1;
while($a[$j]==$a[$k])
{
$k++;
if($k >= count($a))
$k=0;
}
$temp=$a[$j];
$a[$j]=$a[$k];
$a[$k]=$temp;
}
}
var_dump($a);
輸出:
array (size=8)
0 => int 4
1 => int 4
2 => int 2
3 => int 1
4 => int 3
5 => int 4
6 => int 1
7 => int 4
這裏4又連續來了。
有沒有簡單的方法來實現這一點?請幫我解決這種情況。
在此先感謝。
它是確定你的問題 「讓$ A = [4,1,2,1,3,4,4,4],這裏的數字4來連續。我需要避免這種情況,並且所需的輸出必須是或類似於$ a = [4,1,4,1,4,2,3,4]「 –
爲什麼不先找到重複項並在其間嵌入不同的元素? –
@BrijalSavaliya我不明白你評論了什麼。該數組將被輸入,並且我必須安排這樣的連續不變的數字。 –