<?php
$arr = array('0','0','0','0','1');
for($i=0;$i<count($arr);$i++){
if($arr[$i]=='0'){
unset($arr[$i]);
}
}
var_dump($arr);
?>
输出的结果为什么是 array(2) { [3]=> string(1) "0" [4]=> string(1) "1" }
而不是 array(1) { [4]=> string(1) "1" }呢? 小弟想要这么一个功能,在一个数字数组里面,删除前面为0的元素,返回一个首项不为0 的数组 。
php 数组操作。
改成
print_r($arr);
结果是一样的,显示不一样
一个小问题,但关键性的问题确实却是致命的,凸显了在for内每次计数和for前计数的重大区别
for内计算,如果序列动态增减,整个计算思维就不同了
即使不管这个区别,从优化角度看,还是需要for前计数的