$a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
for ($i = 0; $i < count($a1); $i++) {
array_splice($a1,$i, 1);
}
print_r($a1);
效果:
Array ( [0] => Cat [1] => Bird ) PHP
解决方案 »
- PHP目录权限和临时目录的问题,困扰多时,高手帮忙
- php水印图片的制作问题
- 高分求“微盾防盗链专家”静态HTML页面配置方案!!!
- 使用session_set_save_handler函数实现将session保存在数据库中后session不能跨页面了!
- php环境报403错误
- 用PHP程序有没有把MYSQL的一个数据库所有内容,全部导到另一个MYSQL的某个数据库中的方法呀
- 有关php脚本错误的问题
- 关于文件上传问题
- php下怎么才能迫使网页不从缓存里提取数据,而直接从服务器端提取?
- php接口好像接收不到ios传来的值。。求帮忙解决
- tinyint(1)的空白?
- 这两个表达式,怎么会给我把数字过滤了,如果要他不过滤数字,该怎么写。
第一次循环 array_splice($a1,0, 1); $a1变成了 $a1=array(0=>"Cat",1=>"Horse",2=>"Bird");
第二次循环 array_splice($a1,1, 1); $a1变成了 $a1=array(0=>"Cat",1=>"Bird");
第三次循环 $i==2 count($11)==2 不符合循环条件 循环退出
for ($i = 0; $i < count($a1); $i++) {
array_splice($a1,$i, 1);
echo "i=$i ", print_r($a1, 1), '<br>';
}
print_r($a1);i=0 Array ( [0] => Cat [1] => Horse [2] => Bird )
i=1 Array ( [0] => Cat [1] => Bird )
Array ( [0] => Cat [1] => Bird ) 问题在于你的起点不对
count($a1)每次array_splice移除之后都在变化
$a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
for ($i = 0; $i < count($a1); $i++) {
array_splice($a1,$i, 1);
}
print_r($a1);
第1次循环,$i = 0,count($a1)=4 移除Dog,$a1=array(0=>"Cat",1=>"Horse",2=>"Bird");
第2次循环,$i = 1,count($a1)=3 移除Horse,$a1=array(0=>"Cat",1=>"Bird");
第3次循环,$i = 2,count($a1)=2 没用任何值可以移除,$a1=array(0=>"Cat",1=>"Bird");退出循环
结果就是
$a1=array(0=>"Cat",1=>"Bird");