2016-11-08 58 views
0

我想讀取JSON數據到PHP的文件,並搜索其數組或匹配的anme值的對象。如果找到匹配項,我想從表單POST數據更新數組對象數據的內容以更新項目,然後轉換回JSON並保存到json文件。從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 
     ) 
) 

我如何讀取在PHP我$data陣列和搜索匹配的對象name等於$_POST['name'],如果發現匹配,更新的內容數組對象?

+0

那麼你:

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

然後,我不知道你更新的意思,但得到了你的foreach循環。現在你可以檢查'$ obj-> name == $ _POST [「name」]',如果匹配,你可以更新對象。 – Rizier123

+0

在您的榮譽@ Rizier123! – AbraCadaver

+0

@AbraCadaver你不能使用'array_column()'?! :) – Rizier123

回答

1

我會用一個數組(對象將在PHP 7工作):已經

$data[$key]['url'] = 'something new';