我目前正在处理项目,它需要安排一个数组,使得不会有相同的数字连续出现。排列数组中的数字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我不明白你评论了什么。该数组将被输入,并且我必须安排这样的连续不变的数字。 –