我知道有一些类似的问题,但没有一个能解决我的问题。
我有一个简单的表格:
<form method="post">
Import data: <textarea type="text" name="import"></textarea>
<input type="submit">
</form>
然后我从“导入”字段中获取数据:
$current = my_data();
$import = $_POST['import'];
$merge = array_merge($current,$import);
问题是,即使我粘贴:
array('foo' => 'bar')
我得到:
警告:array_merge():参数 #2 不是行 (line) 上 (address) 中的数组
我无法更改 HTML 标记,我必须在那里粘贴数组。任何想法如何解决它?我一直在阅读有关 serialize() 的内容,但不确定是否有任何要序列化的内容是 array() 不是 PHP 的 array()。这是为什么?有什么解决办法吗?非常感谢!
更新
$current 为我的主题保存了一系列选项。$merge 应该保存具有不同值的相同键(其中大约 30-50 个,不是多维的,但将来可能会出现),但当然用户可能会添加新的,所以为了忽略它们,我实际上正在使用:
$imported_options = array_merge($current_options , array_intersect_key($_POST["import"], $current_options ));
(简化了这个,因为它只是一个例子)
所以毕竟我想从表单中加载一个数组并用它更新另一个数组。