使用PHP从JSON数据中搜索对象数组以进行匹配,然后更新匹配的键数据

时间:2016-11-08 20:42:37

标签: php arrays

我正在尝试将一个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'],如果找到匹配项,则更新该数组对象的内容?

1 个答案:

答案 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';