2016-11-08 20 views
0

JSONデータのファイルをPHPに読み込み、その配列またはオブジェクトで一致するanme値を検索しようとしています。一致が見つかった場合、その配列オブジェクトのデータをフォームPOSTデータから更新してアイテムを更新し、JSONに変換してjsonファイルに保存したいと考えています。私はPHPでの私の$data配列を読み、$_POST['name']に等しく、一致が見つかった場合、その内容を更新し、一致するオブジェクトnameを検索することができますどのようにPHPで一致するJSONデータの配列を検索し、一致するキーデータを更新します

$file = 'plugins.js'; 
$tmp_json_data = file_get_contents($file); 
$data = json_decode($tmp_json_data); 

echo '<pre>'; 
print_r($data); 

foreach ($data as $key => $obj) { 
    echo $obj->name; 
    echo $obj->url; 
    echo $obj->tag; 
} 

結果

Array 
(
    [0] => stdClass Object 
     (
      [name] => Roundabout - Interactive, turntable-like areas 
      [url] => http://fredhq.com/projects/roundabout/ 
      [tag] => slide 
     ) 

    [1] => stdClass Object 
     (
      [name] => Slides - Simple slideshow plugin for jQuery 
      [url] => http://slidesjs.com/ 
      [tag] => slide 
     ) 
) 

配列オブジェクト?

+0

さてあなたはすでにあなたのforeachループを得ました。今度は '$ obj-> name == $ _POST [" name "]'をチェックするだけで、一致すればオブジェクトを更新できます。 – Rizier123

+0

あなたの栄誉で@ Rizier123! – AbraCadaver

+0

@AbraCadaver 'array_column()'を使わないとできませんでしたか? :) – Rizier123

答えて

1

私は、配列(オブジェクトはPHP 7で動作します)使用します。次に

$data = json_decode($tmp_json_data, true); 
$key = array_search($_POST['name'], array_column($data, 'name')); 

を、私はあなたが更新によって何を意味するかわからないんだけど、:

$data[$key]['url'] = 'something new'; 
関連する問題