我正在尝试将一个JSON数据文件读入PHP并在其数组或对象中搜索匹配的anme值。如果找到匹配项,我想从表单POST数据更新该数组对象数据的内容以更新项目,然后转换回JSON并保存到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 :(得分:1)
我会使用一个数组(一个对象可以在PHP 7中运行):
$data = json_decode($tmp_json_data, true);
$key = array_search($_POST['name'], array_column($data, 'name'));
然后,我不确定更新的含义,但是:
$data[$key]['url'] = 'something new';