合并到数组并出现错误


Merging to array and getting error

这是我正在做的事情,将值从表单存储到数组,然后将该数组存储到文件中(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 错误。