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


Deleting the last element of an array and then return the rest of the array

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

我有一个数组

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

我想要的是删除最后一个元素后返回 $_POST 数组"submit" => "submit"

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

我试过做

$_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 只返回我提交

array_pop函数就地修改数组;它返回弹出的内容,而不是弹出后的数组。 所以不要将返回值赋回$_POST

如果你想在不实际修改$_POST本身的情况下获取$_POST除最后一个元素之外的所有元素,你可以使用 array_slice

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

从手册:

混合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

您也可以使用array_splice()

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

输出:

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

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

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