php - 在php中将新元素插入多维数组
问题描述
<?php
$accounts = [["felh" => "minta", "password" => "Meow123", "mail" => "pelda@gmail.com"],
["felh" => "minta2", "password" => "Meow1232", "mail" => "pelda2@gmail.com"]];
if (isset($_POST["regisztral"])) {
$username = $_POST["felh"];
$password = $_POST["password"];
$email = $_POST["mail"];
$password2 = $_POST["password2"];
if (strlen($password) < 8)
die("<b>error<b>");
if ($password !== $password2)
die("<b>error</b>");
if ($_POST['feltetel'] != 'igen') die("<b>error</b>");
foreach ($accounts as $account) {
if ($account["felh"] === $username) die("<b>error:</b> taken!");
if ($account["mail"] === $email) die("<b>error:</b>taken!");
}
$accounts[] = ["felh" => $username, "password" => $password, "mail" => $email];
$file = fopen("accounts.txt", "w");
foreach ($accounts as $account)
fwrite($file, serialize($account) . "\n");
fclose($file);
echo "<br>Succeed<br/>";
}
用户必须填写注册表,我的程序应该决定是否使用他的用户名和电子邮件地址。我想将所有用户名、密码和电子邮件地址排序为二维数组,然后将其写入文本文件。我的问题是,每次我在数组中插入一条新记录时,它都会将最后一个元素切换到我刚刚插入的那个,而不是保留它并将新元素添加到数组的末尾。我该如何解决?
*编辑我上传了我的代码的整个 php 部分。需要明确的是,我的问题如下:我在代码开头手动添加的 2 条记录完美运行。当我想插入时,让我们说 cat aaaaaaaa 和 nothing@gmail.com 它工作得很好。但是当我在那之后提交另一个值时,比如说 dog bbbbbbbb 和 something@gmail.com,它会将 cat aaaaaaaaa 和 nothing@gmail.com 切换为 dog bbbbbbbb 和 something@gmail.com。但是我想要的是保留 cat aaaaaaaa nothing@gmail.com 然后将 dog bbbbbbbb something@gmail.com 添加到数组的末尾
解决方案
对您造成问题的是 php 函数 fopen() 和模式。目前在您使用模式'w'的代码中,通过php手册该模式是:
仅供写作;将文件指针放在文件的开头并将文件截断为零长度。如果该文件不存在,请尝试创建它。
每次用新数据覆盖这个名为 accounts.txt 的文件时。
所以你应该使用模式'a'将指针放在文件末尾并附加新数据。
仅供写作;将文件指针放在文件末尾。如果该文件不存在,请尝试创建它。在这种模式下, fseek() 没有效果,写入总是附加的。
测试:https ://repl.it/@kallefrombosnia/DiscreteOnerlookedLists
推荐阅读
- amazon-web-services - 有没有办法在 python 中模拟雅典娜和单元测试?
- tensorflow - 尝试通过 tensorflowjs_converter 将 TF.Estimator 模型转换为 Tensorflow.js 时出错
- python - 创建多索引(3 轴)以取 1 轴的平均值
- google-places-api - 谷歌地方Api中的查询限制错误
- javascript - 如何将数组中的值添加到它之前和之后的值
- c++ - 无法将莫尔斯电码排序为二叉树
- python - Django Paginator 给出错误 __init__() 缺少 2 个必需的位置参数:'number' 和 'paginator'
- php - 获取类方法参数类型
- php - 将自定义优惠券添加到订单数据
- authentication - 这个网站 SSO 认证方案安全吗?