2016-08-21 6 views
1

jsonファイルに格納されているレコードを更新するために3つの引数を渡しています。 レコードは動的に作成され、ユーザーの希望に応じて保存されます。 次のコードは、jsonファイル内のidを正常に検出しましたが、レコードの更新に失敗しました。 更新作業を手伝ってください!PHP:jsonフィールドの更新方法

//<$_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

問題は、foreachループで$ objitemsを更新していません...あなたが適切な$ objitems変数配列と$field->value = $nam[$i];を交換しjson_encodeに

をその変数を使用しています。あなたがコードを書くことができ、

<?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); 
+0

おかげ氏ヤシュください

コードは次のようなものになるだろうか? – Shubair

+0

@Shubairあなたの参照のためにいくつかのコードを追加する答えを編集しました。それを確認してください。 –

+0

は動作しません) - : – Shubair

関連する問題