我正在尝试使用从表单提交的值替换json文件中的值。 Json文件如下:
{
"meta_titles": {
"Just another site": "",
"Test test": "",
"This is a test post": "",
"Hello world!": ""
},
"tag_titles": {
"Title Test": "",
"Recent Posts": "",
"Recent Comments": "",
}
}
和PHP数组:
Array
(
[meta_titles-0] => Juste un autre site Wordpress
[meta_titles-1] =>
[meta_titles-2] => Ceci est un test post
[meta_titles-3] => Salut le monde
[tag_titles-0] =>
[tag_titles-1] =>
[tag_titles-2] =>
)
应该返回:
{
"meta_titles": {
"Just another site": "Juste un autre site Wordpress",
"Test test": "",
"This is a test post": "Ceci est un test post",
"Hello world!": "Salut le monde"
},
"tag_titles": {
"Title Test": "",
"Recent Posts": "",
"Recent Comments": "",
}
}
到目前为止我所拥有的:
$filecontent = file_get_contents($website_directory.'/'.$file_to_read);
$oJson = json_decode($filecontent, true);
foreach ($_POST as $key => $val) {
foreach($oJson->fields as $i => $oVal) {
$oJson->fields[$i]->value = $val;
}
}
$json = json_encode($oJson);
var_dump($json);
尝试了很多事情,但没有找到办法。 编辑:我从var_dump得到完全相同的json文件内容。
答案 0 :(得分:2)
json_decode
设置为true
,则来自$oJson
的第二个参数意味着array
将为$oJson
。因此,您将像array
一样访问$_POST
。 $filecontent = file_get_contents($website_directory.'/'.$file_to_read);
$oJson = json_decode($filecontent, true);
foreach ($_POST as $key => $val) {
list($json_key, $json_no) = explode("-", $key);
$json_keys = array_keys($oJson[$json_key]);
$oJson[$json_key][$json_keys[$json_no]] = $val;
}
$json = json_encode($oJson);
var_dump($json);
你只有单级数组。您必须更改为:
BEGIN BATCH;
INSERT INTO keyspace.table (id, field1) VALUES ('1','value1');
INSERT INTO keyspace.table (id, field1) VALUES ('2','value2');
APPLY BATCH;