gpt4 book ai didi

PHP JSON 按相同值分组

转载 作者:行者123 更新时间:2023-11-30 22:42:11 25 4
gpt4 key购买 nike

我在考虑如何按具有相同值的对象对我的数组进行分组。

我从 MySQL 查询得到这个结果:

| Id |    Name     |     Date     |  Value  ||----|-------------|--------------|---------|| 1  |    Jeff     |  2014-12-01  |    5    |          | 1  |    Jeff     |  2015-12-01  |    8    | | 2  |    David    |  2014-12-01  |    7    |      | 2  |    David    |  2015-12-01  |    6    |   

如果我使用 echo json_encode():

$json = array();    while($row = mysqli_fetch_assoc($result)) {                     $bus = [        'id' => $row["id"],        'name' => $row["name"],        'date' => $row["date"],        'value' => $row["value"]        ];        array_push($json, $bus);            }echo json_encode($json);

结果是:

[    {        "Id": "1",        "Name": "Jeff",        "Date": "2014-12-01",        "Value": "5"    },    {        "Id": "1",        "Name": "Jeff",        "Date": "2015-12-01",        "Value": "8"    },    {        "Id": "2",        "Name": "David",        "Date": "2014-12-01",        "Value": "7"    },    {        "Id": "2",        "Name": "David",        "Date": "2015-12-01",        "Value": "6"    }]

但是,是否可以使用 php 获取这样的 json 数组?

[    {        "Id": "1",        "Name": "Jeff",        "Values":[               {                 "2014-12-01": "5",                 "2015-12-01": "8"               }                  ]    },    {        "Id": "2",        "Name": "David",        "Values":[               {                 "2014-12-01": "7",                 "2015-12-01": "6"               }                  ]    }]

最佳答案

不知道用sql能不能得到你想要的数据

通常,我会使用 php 来完成这项工作

<?php
$json = array();

foreach ($array as $idx => $data) {
//Id is not exists in json,create new data
if( !array_key_exists($data['Id'], $json) ){//Id is unique in db,use Id for index ,you can find it easily
$json[$data['Id']]=array(
'Id' =>$data['Id'],
'Name'=>$data['Name'],
'Value'=>array(
$data['Date']=>$data['Value']
)
);
continue;
}

//Id is exists in json, append value
$json[$data['Id']]['Value'][$data['Date']] =$data['Value'];
}
$json = json_encode($json);

希望能帮到你

关于PHP JSON 按相同值分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30815807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com