Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否删除最后一个数组值?php_Php_Arrays - Fatal编程技术网

是否删除最后一个数组值?php

是否删除最后一个数组值?php,php,arrays,Php,Arrays,1问题类型 $transport = array('foot', 'bike', 'car', 'plane'); $transport = array('', 'bike', 'car', ''); // delate the last line $transport = array('', 'bike', 'car', 'ferrari'); // dont the last line $transport = array('ship', 'bike', 'car', 'ferrar

1问题类型

$transport = array('foot', 'bike', 'car', 'plane');
 $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
我可以删除飞机吗? 有办法吗

2问题类型

$transport = array('foot', 'bike', 'car', 'plane');
 $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
是否有一种简单的方法可以删除最后一个数组“如果最后一个数组值为空,则删除”如果不为空,则不删除?但不删除第一个数组?

最简单的方法是:在数组末尾弹出一个元素

关于第二个问题:

if (end($transport) == "") { 
    array_pop($transport); 
}
应该处理第二个问题

编辑:

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

根据Scott的评论,修复了数组_pop。谢谢你抓住了

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

$end_item = end($transport);
if (empty($end_item)) { 
    array_pop($transport); 
}
很抱歉发布了错误的代码。上面我测试过的

对于#1

if(empty($transport[count($transport)-1])) {
    unset($transport[count($transport)-1]);
}
您只需通过以下函数即可完成此操作:

array_pop($transport);

因此,传输的第一个数组为空,然后删除?@Adam Ramadhan,
if($transport[count($transport)-1]=='')
使用array\u-pop更有意义,因为它将同时处理关联哈希和基于索引的数组。array\u-pop返回数组的最后一个元素。您的示例代码将使用OP不需要的元素覆盖整个数组。对此表示抱歉。修复了它,但保留Scott的答案。他抓住了明显的问题,这是值得的。这一个很好,但请参见roddik评论,
if($transport[count($transport)-1]=='')很好,很完美,谢谢。很高兴你找到了你需要的。正如您所理解的,如果最后一个元素是空字符串,roddik的代码将从数组中删除它。如果最后一个元素为false、null或empty()函数认为为空的任何其他值,则我的将删除该元素。也许两者中的任何一个都对你有好处。@GTorodov:不,我没有。请求是删除最后一个空元素。@frieder:什么“麻烦”?除了删除最后一个元素(如果该元素为空)之外,这对数组没有任何作用
array\u pop()
是一个非常好的方法,但是这个方法并不能阻止向数组中添加任何内容。这可能是一个PHP错误。我有一个数组,比如说
$array=[[0]=>“string1”、[1]=>“string2”]
。然后我用
unset($array[1])
删除了最后一个元素。现在,当我使用
$array[]=“string1”
添加一个元素时,数组将如下所示:
$array=[[0]=>“string1”、[2]=>“string2”]
对于那些喜欢php.net而不是w3schools.com的人来说,无需获取数组长度:
数组切片($transport,0,-1)
--