删除最后一个数组值? PHP

时间:2010-07-26 19:48:07

标签: php arrays

1个问题类型

$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 个答案:

答案 0 :(得分:38)

if(empty($transport[count($transport)-1])) {
    unset($transport[count($transport)-1]);
}

答案 1 :(得分:31)

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

至于第二个问题:

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

应该处理第二个。

编辑:

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

修正了array_pop,给出了Scott的评论。谢谢你抓住了!

修正了致命错误,我想空的不能和我一样使用。如果需要,上面的代码将不再捕获null / false,您可以从end函数中分配变量并进行测试,如下所示:

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

很抱歉发布了错误的代码。以上我测试过。

答案 2 :(得分:10)

表示#1,

$transport=array_slice($transport,0,count($transport)-1)

答案 3 :(得分:6)

您可以通过array_pop()功能

完成此操作
array_pop($transport);

答案 4 :(得分:1)

$endvalue = & end($transport);
array_pop($endvalue);