&引用;总结;JSON数据与php
假设我得到了以下JSON:&引用;总结;JSON数据与php,php,json,Php,Json,假设我得到了以下JSON: { users: [ { qnt: "3", post: "j8v2g5", contact: "foo@bar.com", id: "1" }, { qnt: "10", post: "xxxyyy", contact: "foo@foo.net", id: "6" }, { qnt: "3", post: "xxxyyy", contact: "bar@foo.org", id: "4" } ] } 我希
{
users: [
{
qnt: "3",
post: "j8v2g5",
contact: "foo@bar.com",
id: "1"
},
{
qnt: "10",
post: "xxxyyy",
contact: "foo@foo.net",
id: "6"
},
{
qnt: "3",
post: "xxxyyy",
contact: "bar@foo.org",
id: "4"
}
]
}
我希望用户
的所有具有相同帖子
的子用户将其qnt
添加到一起,并从最终结果中删除联系人
和id
我希望结果如下所示:
{
users: [
{
qnt: "3",
post: "j8v2g5"
},
{
qnt: "13",
post: "xxxyyy"
}
]
}
您可能会从某处收到
$myJson
,然后可以返回$rsultsJson
。我建议将整个过程放在函数或类方法中
$myJson = '{"users": [{ "qnt": "3", "post": "j8v2g5", "contact": "foo@bar.com", "id": "1" }, { "qnt": "10", "post": "xxxyyy", "contact": "foo@foo.net", "id": "6" }, { "qnt": "3", "post": "xxxyyy", "contact": "bar@foo.org", "id": "4" }]}';
$usersObject=json_decode($myJson);
$usersArray = $usersObject->users;
$postCount = array();
foreach ($usersArray as $user) {
if (array_key_exists($user->post, $postCount)) {
$postCount[$user->post] += $user->qnt;
} else {
$postCount[$user->post] = $user->qnt;
}
}
$results = new stdClass();
$results->users = array();
foreach ($postCount as $post => $count) {
$user = new stdClass();
$user->qnt = $count;
$user->post = $post;
$results->users[] = $user;
}
$rsultsJson = json_encode($results);
你试过什么?如果你被困在某个地方,我们很乐意帮助你,但你不能指望我们为你做所有的工作!除非我能给你寄一张发票;-)通过json_decode()将其转换为数组,然后使用类似于array_walk的方法构建数组。如果post在_数组中,则将qnt添加到qnt。然后通过JSONY-EnCODE()来编码结果。@ Pevara谢谢你的帮助,我不知道如果没有你,我会怎么做):如果你不能,甚至不考虑帮助-不要费心评论。对不起?我只是想友好地告诉你,你至少应该表现出一些努力。所以是为了解决具体的编程问题,而不是免费的“编写我的代码”服务!也许你应该先读一下术语@Pevara我不知道怎么做,好吗?在很长一段时间里,我一直避免这样做,因为我不知道怎么做,但现在,做一个变通方法会让工作变得非常困难。