删除数组的最后一个元素,然后返回数组的其余部分

时间:2013-10-20 04:01:21

标签: php

对不起朋友,这可能是基本的东西,但我无法弄明白

我有一个数组

$_POST = array("name"=>"John","fname"=>"Anderson","submit"=>"submit");

我想要的是在删除最后一个元素"submit" => "submit"

后返回$ _POST数组

我知道这可以通过简单地取消设置提交来完成,但我希望它是动态的。

我试过

$_POST = array_pop($_POST);
print_r($_POST);

但它只是让我“提交”一词。我想要它应该返回

array("name"=>"John","fname"=>"Anderson");

更新部分:

public function insertRow($table,$_post){
        $_post = (array_pop($_post));
        print_r($_post);
    }

$Connection->insertRow("users",array("name"=>"raheel","fname"=>"masood","submit"=>"submit"));

在上面的函数中,$ _post返回我只提交

4 个答案:

答案 0 :(得分:1)

来自manual

  

混合array_pop(数组& $ array

     

array_pop()弹出并返回数组的最后一个值,将数组缩短一个元素。如果是array   为空(或不是数组),将返回NULL。在非呼叫时还会产生警告   阵列。

     

注意:此函数在使用后将reset()输入数组的数组指针。

这样:

$popdValue = array_pop($_POST); // no assignment to $_POST
echo $popdValue; // last element removed from $_POST
print_r($_POST); // remaining $_POST

答案 1 :(得分:1)

array_pop函数修改了数组;它返回弹出的内容,而不是弹出后的数组。因此,请勿将返回值分配回$_POST

如果您希望获得$_POST 的最后一个元素而不实际修改$_POST本身,则可以使用array_slice

$_POST_minus_last = array_slice($_POST, 0, -1);

答案 2 :(得分:0)

您还可以使用 array_splice()

<?php
$arr = array("name"=>"John","fname"=>"Anderson","submit"=>"submit");
array_splice($arr,2);
print_r($arr);

输出:

Array ( [name] => John [fname] => Anderson )

答案 3 :(得分:-1)

因为array_pop返回弹出的元素。不是阵列的其余部分。

array_pop($_POST);
print_r($_POST);