如何使用PHP从和数组中提取多个JSON对象?

如何使用PHP从和数组中提取多个JSON对象?,php,arrays,json,extract,Php,Arrays,Json,Extract,我一直在试图找出如何从JSON数组中提取多个JSON对象 我使用了其他帖子中的代码 $json = '[ {"user_id":"1", "user_name":"Sayeed Amin", "time":"2019-11-06 13:21:26"} ]'; $someArray = js

我一直在试图找出如何从JSON数组中提取多个JSON对象

我使用了其他帖子中的代码

$json = '[
            {"user_id":"1",
            "user_name":"Sayeed Amin",
            "time":"2019-11-06 13:21:26"}
        ]';

$someArray = json_decode($json, true);

foreach ($someArray as $key => $value) {
    echo $value["user_id"] . ", " . $value["user_name"] . ", " . $value["time"] . "<br>";
}
$json=”[
{“用户id”:“1”,
“用户名”:“Sayeed Amin”,
“时间”:“2019-11-06 13:21:26”}
]';
$someArray=json_decode($json,true);
foreach($someArray作为$key=>$value){
echo$value[“用户id”],“$value[“用户名”],“$value[“时间”]。
”; }
我可以将其用于数组中的单个json对象,结果很好

结果:赛义德·阿明,2019-11-06 13:21:26

如果我在数组中有多个json对象呢?像

$json = '[
        {"name":"Name",
        "value":"me you",
        "id":0,
        "type":"name",
        "first":"me",
        "middle":"",
        "last":"you"
        },
        {"name":"Email",
        "value":"myemail@gmail.com",
        "id":1,
        "type":"email"
        },
        {"name":"Phone",
        "value":"+12015550000",
        "id":2,"type":"phone"
        },
        {"name":"Address",
        "value":"my address\nsomecity, somestate\nsomepost\nUS",
        "id":3,
        "type":"address",
        "address1":"my address",
        "address2":"",
        "city":"somecity",
        "state":"somestate",
        "postal":"somepost",
        "country":"US"
        }
]';

$someArray = json_decode($json, true);

foreach ($someArray as $key => $value) {
    echo $value["name"] . ", " . $value["value"] . "<br>";
}
$json=”[
{“名称”:“名称”,
“价值”:“我你”,
“id”:0,
“类型”:“名称”,
“第一”:“我”,
“中”:“,
“最后”:“你”
},
{“姓名”:“电子邮件”,
“值”:myemail@gmail.com",
“id”:1,
“类型”:“电子邮件”
},
{“姓名”:“电话”,
“价值”:“+12015550000”,
“id”:2,“类型”:“电话”
},
{“姓名”:“地址”,
“值”:“我的地址\n某个城市,某个州\n某个邮局\n地址”,
“id”:3,
“类型”:“地址”,
“地址1”:“我的地址”,
“地址2”:“地址”,
“城市”:“某个城市”,
“状态”:“某个状态”,
“邮政”:“somepost”,
“国家”:“美国”
}
]';
$someArray=json_decode($json,true);
foreach($someArray作为$key=>$value){
echo$value[“name”]。,“$value[“value”]。”
”; }
结果:名字,我是你
电子邮件myemail@gmail.com
电话+12015550000
地址,我的地址某个城市,某个州某个邮局


所需结果:Name,me you

如果您只想输出对象数组的第一次出现,请按如下所示对数组进行适当寻址:

$json = '[
        {"name":"Name",
        "value":"me you",
        "id":0,
        "type":"name",
        "first":"me",
        "middle":"",
        "last":"you"
        },
        {"name":"Email",
        "value":"myemail@gmail.com",
        "id":1,
        "type":"email"
        },
        {"name":"Phone",
        "value":"+12015550000",
        "id":2,"type":"phone"
        },
        {"name":"Address",
        "value":"my address\nsomecity, somestate\nsomepost\nUS",
        "id":3,
        "type":"address",
        "address1":"my address",
        "address2":"",
        "city":"somecity",
        "state":"somestate",
        "postal":"somepost",
        "country":"US"
        }
]';

$arr = json_decode($json);

echo $arr[0]->name . ", " . $arr[0]->value . "\n";
结果

Name, me you

JSON无效,
语法错误,格式错误的JSON
。Jason是Argonaut,JSON是数据传输标准,您只需在第一次迭代后退出即可。我可以做类似的事情。这是因为第一个
id
0
。。。也可以在循环前将变量设置为0,在满足条件后增加1。上面提供的代码有效,也许您在我编辑之前阅读过。。。或者你说的是我缺少的部分?你如何确定你想要的结果是什么?它总是数组中的第一个项,是带有
“id”:0的项还是带有
“name”:“name”
的项?如果它总是第一个项目,只需使用
$someArray[0]
获取第一个对象。如果需要检查条件,请在循环中使用
If
语句。