&引用;总结;JSON数据与php

&引用;总结;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" } ] } 我希

假设我得到了以下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"
 }
]
}
我希望
用户
的所有具有相同
帖子
的子用户将其
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我不知道怎么做,好吗?在很长一段时间里,我一直避免这样做,因为我不知道怎么做,但现在,做一个变通方法会让工作变得非常困难。