我需要在删除的数组中选择一个兰特值,并短接我用这个小代码得出的数组,但它保持在无限循环中,但这是奇怪的外观
<?php
$array=array("1","2","3","4","5","6","7","8","9","0");
$count=count($array);
for ($il=1;$il<=$count;$il++){
$array_value=array_rand($array, 1);
$array_value_key = array_search($array_value, $array);
$array_key_last=array_key_last($array);
for($if=0;$if<=$array_key_last;$if++){
if ($if==$array_value_key){
for($ia=$array_value_key;$ia<=$array_key_last;$ia++){
if ($ia<$array_key_last){
$ian=$ia+1;
$array[$ia]=$array[$ian];
}else{
unset($array[$ia]);
}
}
}
}
print_r($array);
}
?>
那里的输出每次都可能不同,就像这样但永远不会结束
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 5
[4] => 6
[5] => 7
[6] => 8
[7] => 9
[8] => 0
)
Array
(
[0] => 2
[1] => 3
[2] => 5
[3] => 6
[4] => 7
[5] => 8
[6] => 9
[7] => 0
)
^C
我必须打破它,但正如你所看到的,在第一个循环中,按预期工作删除了数字 4,在第二个循环中删除了数字 1,但没有完成第三个循环
我复习了很多遍,得出问题的结论就行了
$array[$ia]=$array[$ian];
如果我在这里添加一个回显,它会打印一个数字到无穷大,为什么?
$array[$ia]=$array[$ian];
echo $array[$ia],"\n";
呼啦一阵风