首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不重写以前的情况下将元素添加到数组?- PHP

如何在不重写以前的情况下将元素添加到数组?- PHP
EN

Stack Overflow用户
提问于 2014-04-26 03:37:11
回答 1查看 97关注 0票数 1

在输入元素名称后,我尝试将元素添加到数组中,但由于某种原因,我要添加元素。

代码语言:javascript
复制
<?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>

它将其放入数组中,但当我再次这样做时,它会重写前面编写的元素。有人知道怎么解决吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-26 05:21:44

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

代码语言:javascript
复制
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()推一个元素似乎有点.过火了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23306340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档