添加元素到数组而不在PHP中覆盖它?

时间:2017-04-28 10:33:26

标签: php arrays forms

我正在尝试从php中的表单值向数组添加新元素。但是每次我这样做都会覆盖最近的元素。所以我现有的数组是这样的:

$moviepages = [[ "title" => "test1",
"description" => "this is my test"

]
];

我想将它(通过表单值创建)添加到它:

$newfile = [

  "title" => "test2",
"description" => "test2",

 ];

通过这样做:

    $moviepages[] = $newfile;

但是我需要连续添加元素,这样当不同的用户进来时,他们可以将项目添加到同一个数组,而不会删除先前的数组元素。有没有办法做到这一点? 谢谢!

1 个答案:

答案 0 :(得分:1)

如果表单值存储在数组中,您可以尝试使用array_merge()将两个数组合并在一起。例如;

array_merge($moviepages, $newFile)

修改

您也可以尝试使用array_merge_recursive()函数,因为它不会删除以前的条目,只是为这些值创建一个新数组。例如;

此代码;

$a1=array("a"=>"red","b"=>"green");
$a2=array("c"=>"blue","b"=>"yellow");
print_r(array_merge_recursive($a1,$a2));

会产生这个结果;

Array ( [a] => red [b] => Array ( [0] => green [1] => yellow ) [c] => blue )

这个解释来自w3schools,两者之间存在差异。

  

此函数(array_merge_recursive())和array_merge()函数之间的区别是   当两个或多个数组元素具有相同的键时。而不是覆盖   键,array_merge_recursive()函数使值为   阵列。

至于file_put_contents-,请尝试查看w3schoolstutorialspoint

让我知道它是否适合您或您是否有任何问题。