<?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 数组操作。

解决方案 »

  1.   

    本帖最后由 xuzuning 于 2012-12-30 15:35:07 编辑
      

  2.   

    var_dump($arr);
    改成
    print_r($arr); 
    结果是一样的,显示不一样
      

  3.   

    很有趣,相当有趣……
    一个小问题,但关键性的问题确实却是致命的,凸显了在for内每次计数和for前计数的重大区别
    for内计算,如果序列动态增减,整个计算思维就不同了
    即使不管这个区别,从优化角度看,还是需要for前计数的