如何在不重写上一个元素的情况下将元素添加到数组中?-PHP

如何在不重写上一个元素的情况下将元素添加到数组中?-PHP,php,arrays,Php,Arrays,我试图在键入元素名称后将其添加到数组中,但出于某种原因,当我这样做时 <?php session_start(); $u = array("billy\n", "tyson\n", "sanders\n"); serialize($u); file_put_contents('pass.txt', $u); if (isset($_POST['set'])) { unserialize($u); array_push

我试图在键入元素名称后将其添加到数组中,但出于某种原因,当我这样做时

<?php
    session_start();
    $u = array("billy\n", "tyson\n", "sanders\n");
    serialize($u);
    file_put_contents('pass.txt', $u);

    if (isset($_POST['set'])) {
        unserialize($u);
        array_push($u, $_POST['check']);
        file_put_contents('pass.txt', $u);
    }
?>

<form action="index.php" method="post">
    <input type="text" name="check"/><br>
    <input type="submit" name="set" value="Add person"/><br>
    <?php echo print_r($u); ?>
</form>




它将它放入数组中,但当我再次这样做时,它会重写先前写入的元素。有人知道如何解决这个问题吗?

你总是从同一个数组开始,这意味着无论你做什么,你都只能添加一个人。我/认为/您正在尝试将每个人添加到文件中,这可以通过修改代码来实现,类似于以下内容:

session_start();

$contents = file_get_contents('pass.txt');    

if (isset($_POST['set'])) {
    $u = unserialize($contents);
    array_push($u, $_POST['check'] . "\n");
    $u = serialize($u);
    file_put_contents('pass.txt', $u);
}
还要注意,不能单独使用
[un]serialize()
,必须在变量设置中使用它


**注意:就我个人而言,我只是简单地使用
u[]=$\u POST['check']
,因为使用
array\u push()。。。过度杀戮。

键入他们的名字后,你是什么意思?我指的是我的整个脚本,是关于键入你的名字,并将其添加到数组中等等,我只是不想全部显示。然后显示一个可以复制此问题的示例。@user3504199您可以显示表单等吗?您不能保留来自不同表单提交的数组,为此,您需要使用$\u SESSION['person'][]=$u;但是,如果我还想向数组中添加一个元素呢?