代码之家  ›  专栏  ›  技术社区  ›  Adam Ramadhan

删除最后一个数组值?菲律宾比索

  •  12
  • Adam Ramadhan  · 技术社区  · 16 年前

    $transport = array('foot', 'bike', 'car', 'plane');
    

    我可以删除飞机吗? 有办法吗?

    2问题类型

     $transport = array('', 'bike', 'car', ''); // delate the last line
     $transport = array('', 'bike', 'car', 'ferrari'); // dont the last line
     $transport = array('ship', 'bike', 'car', 'ferrari'); // dont the last line
    

    5 回复  |  直到 13 年前
        1
  •  48
  •   Mikael Östberg    13 年前
    if(empty($transport[count($transport)-1])) {
        unset($transport[count($transport)-1]);
    }
    
        2
  •  33
  •   Jim    16 年前

    最简单的方法: array_pop() 它将弹出数组末尾的一个元素。

    关于第二个问题:

    if (end($transport) == "") { 
        array_pop($transport); 
    }

    应该处理第二个。

    编辑:

    修改代码以符合更新的信息。这应该适用于关联数组或基于索引的数组。

    根据斯科特的评论,修复了数组的弹出。谢谢你接电话!

    修正了致命的错误,我猜空不能像我有结束使用。上面的代码将不再捕捉null/false,如果需要,您可以从end函数中分配一个变量并进行如下测试:

    $end_item = end($transport);
    if (empty($end_item)) { 
        array_pop($transport); 
    }

    对不起,您的代码不正确。以上我测试过的。

        3
  •  14
  •   JAL    16 年前

    对于#1,

    $transport=array_slice($transport,0,count($transport)-1)
    
        4
  •  10
  •   Martin AJ    10 年前

    array_pop() 功能:

    array_pop($transport);
    
        5
  •  3
  •   viji    12 年前
    $endvalue = & end($transport);
    array_pop($endvalue);