end($array);
$v = pos($array);
if(empty($v))
  unset($array[key($array)]);
reset($array);

解决方案 »

  1.   

    $name = array ("orange", "banana", "apple", "");
    array_pop ($name);print_r($name);
      

  2.   

    array_pop 是什么函数?手册上查不到。
      

  3.   

    如果数组中最后一项为空值,这项还会存在吗?即如果$t为empty,它可能做为一个数组的其中一项吗?
      

  4.   

    可以,所谓empty是指:0,"",flase
    他的键(索引)还存在用array_pop要简单些,按你的要求
    $v = array_pop ($name);
    if(! empty($v))
      array_push($name,$v)array_pop和array_push把数组作为堆栈,数组尾为作为栈顶
    array_shift和array_unshift以数组首为作为栈顶
      

  5.   

    end($array);
    $v = pos($array);
    if(empty($v))
      unset($array[key($array)]);
            ~~~~~~~~~~~~~~~~~~这一部分为什么不用$v?
    reset($array);
      

  6.   

    $v = array_pop ($name);
    if(! empty($v))
      array_push($name,$v)

    end($array);
    $v = pos($array);
    if(empty($v))
      unset($array[key($array)]);
    reset($array);
    简单?我看应该是下面的简单吧?上面的是要重新堆起来那个数组吧?而下面的可以不管其内容而只把最后一个消掉,效率高一点吧?
      

  7.   

    解释一下:
    方法一
    end($array);  // 数组指针移到最后
    $v = pos($array);  // 取数组指针所在元素的值
    if(empty($v))  // 判断是否为空
      unset($array[key($array)]);  // 为空则删除,key($array)取得数组指针所在元素的键。这句等价于:$name=key($array);unset($array[$name]);
    reset($array); // 将数组指针移到开始方法二
    $v = array_pop ($name); // 弹出栈顶元素
    if(! empty($v))  // 判断是否为空
      array_push($name,$v)  // 不为空则压回堆栈两法效果一样,各人所爱