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


How to add element to array without rewriting previous? - PHP

我试图在键入元素名称后将其添加到数组中,但由于某些原因,当我执行时

<?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[] = $_POST['check'],因为使用array_push()来推送一个元素似乎有点。。。过度杀戮。