我传递了三个参数来更新存储在json文件中的记录。 根据用户的意愿动态创建和保存记录。 以下代码成功找到json文件中的id但无法更新记录。 请帮我完成更新任务!!
//<$_GET sid desired ID, gid name of the json file to search in, and $nam array of new values>
$jsonitem = file_get_contents("folder1/".$gid.".txt");
$objitems= jsonp_decode($jsonitem,true);
foreach ($objitems as $row) {
if ($row['id']==$sid) {
$i=0;
foreach ($row as $field => $value){
$field->value = $nam[$i]; //this statement does not save the new values in the array!!
$i++;
}
}
}
$jsondata = json_encode($objitems,JSON_PRETTY_PRINT);
$jsondata = "jsonp(" . $jsondata . ")";
file_put_contents("folder1/".$gid.".txt", $jsondata);
答案 0 :(得分:0)
问题是你没有在foreach循环中更新$ objitems ..你在json_encode中使用那个变量
用适当的$ objitems变量数组替换$field->value = $nam[$i];
。
代码将是这样的:
<?php
$jsonitem = file_get_contents("folder1/".$gid.".txt");
$objitems= jsonp_decode($jsonitem,true);
$c=0;
foreach ($objitems as $row)
{
if ($row['id']==$sid) {
$i=0;
foreach ($row as $field => $value)
{
$row[$field][$value] = $nam[$i];
$i++;
}
$objitems[$c] = $row;
}
$c++;
}
$jsondata = json_encode($objitems,JSON_PRETTY_PRINT);
$jsondata = "jsonp(" . $jsondata . ")";
file_put_contents("folder1/".$gid.".txt", $jsondata);