这是我正在做的事情,将值从表单存储到数组,然后将该数组存储到文件中(array.jason)。
if (isset($_POST['addEntity'])) {
$values = array_values($_POST);
print_r($values);
unset($values[1]);
var_dump($values);
$file_values = json_decode(file_get_contents('array.json'), true);
array_combine($file_values,$values);
file_put_contents("array.json",json_encode($values),FILE_APPEND);
}
现在,当我尝试将数组从文件 ($file_values) 合并到我从提交 ($values) 获得的数组时,我收到此错误或警告:(
警告:array_combine() 期望参数 1 为数组,给定空值 在 C:''Users''tej''PhpstormProjects''Final Year Project''index.php 中 第 9 行
所以你的代码中有一些错误,给你带来了一些错误。首先,我将向您展示如何修复代码,其次,出了什么问题以及发生了什么。
因此,要修复您的代码,您必须将 array_combine()
的返回值重新分配给$values
并覆盖文件,因为您将新数据添加到旧的解码数据中,例如
if (isset($_POST['addEntity'])) { $values = array_values($_POST); 未设置($values[1]); $file_values = json_decode(file_get_contents('array.json'), true); $values = array_combine($file_值,$values); file_put_contents("array.json", json_encode($values));}<小时 />
但是没有该分配和文件附加的情况下发生的事情是。您刚刚将新数据编码为 JSON 并将其附加到您的文件中。表示您创建了:
[DATA 1]
[DATA 2]
[DATA ...]
因此,当您尝试再次解码它时,所有编码数据组合不再有效,即使它们是一行,它们也不是整个文件。然后导致返回json_decode()
NULL
,因为它不是有效的 JSON,最后你试图将 NULL 与一个数组结合起来,这导致了一个 PHP 错误。