0

对不起朋友,这可能是一些基本的东西,但我想不通

我有一个数组

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

4

4 回答 4

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
于 2013-10-20T04:04:32.737 回答
1

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

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

$_POST_minus_last = array_slice($_POST, 0, -1);
于 2013-10-20T04:17:46.703 回答
0

您还可以利用array_splice()

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

输出 :

Array ( [name] => John [fname] => Anderson )
于 2013-10-20T04:28:24.320 回答
-1

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

array_pop($_POST);
print_r($_POST);
于 2013-10-20T04:04:47.300 回答