如何使用PHP从和数组中提取多个JSON对象?
我一直在试图找出如何从JSON数组中提取多个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 = '[
{"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
语句。