PHP 在 JSON 中搜索值

标签 php json

所以我有一个 json 对象,它的结构如下:

{
"John Doe": [
    {
        "childName": "Harry",
        "childAge": 15,
        "childGender": "Male"
    },
    {
        "childName": "Sally",
        "childAge": 9,
        "childGender": "Female"
    },
],
"Miss Piggy": [
    {
        "childName": "Jane",
        "childAge": 20,
        "childGender": "Female"
    }
],

我想要做的是能够查询 childName、childAge 或 childGender,如果找到则返回该子对象。

例如:

searchJson($jsonObj, 'childName', 'Sally') // returns {"childName":"Sally", "childAge":9,"childGender":"Female"}

执行此操作的最佳方法是什么?

最佳答案

function searchJson($obj, $field, $value) {
    foreach($obj as $item) {
        foreach($item as $child) {
            if(isset($child->$field) && $child->$field == $value) {
                return $child;
            }
        }
    }
    return null;
}

关于PHP 在 JSON 中搜索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8691382/

相关文章:

PHP - 下拉不显示 mysql 中的所有项目

php - 使用 PHP 将复选框输入放入 MySQL 表列中

php - symfony 中的查询和子查询

java - Jackson + reSTLet + tomcat - 无法注册助手 org.reSTLet.ext.jackson.JacksonConverter

c++ - 检查 boost 属性树中的值是树还是终端值

javascript - 将 Google 电子表格转换为 JSON 格式

php - 数据 Excel 到 MySql

php - 为什么我的 SQL 不起作用?

java字符串到json元素的转换

android - 使用Gson将Json反序列化为单例