【发布时间】:2021-12-30 05:12:35
【问题描述】:
首先,我有以下从数据库返回的数据。我将有两个不同的数据分别如下
| sum1 | count1 | sm__state_name__ | om__order_date__year | om__order_date__quarter | om__order_date__month |
|---|---|---|---|---|---|
| 5645000 | 4 | Luanda | 2017 | 3 | 8 |
| 213985939.8600001 | 1606 | Luanda | 2017 | 3 | 9 |
| 7729331.52 | 119 | Benguela | 2017 | 3 | 9 |
| 1012936 | 17 | Zaire | 2017 | 3 | 9 |
| 1054883 | 19 | Bie | 2017 | 3 | 9 |
| 2347944 | 26 | Cuando Cubango | 2017 | 3 | 9 |
| 428769.6000000001 | 60 | Bengo | 2017 | 3 | 9 |
| 6444569 | 86 | Huila | 2017 | 3 | 9 |
| 4914030 | 25 | Cunane | 2017 | 3 | 9 |
| 1167200 | 26 | Cuanza North | 2017 | 3 | 9 |
| 750080 | 10 | Cuanza Sul | 2017 | 3 | 9 |
| 2178100 | 6 | Huambo | 2017 | 3 | 9 |
| 1099934 | 25 | Lunda North | 2017 | 3 | 9 |
| 410135 | 12 | Malange | 2017 | 3 | 9 |
数组格式
array (
0 =>
array (
'sum1' => '5645000',
'count1' => '4',
'sm__state_name__' => 'Luanda',
'om__order_date__year' => '2017',
'om__order_date__quarter' => '3',
'om__order_date__month' => '8',
),
1 =>
array (
'sum1' => '213985939.8600001',
'count1' => '1606',
'sm__state_name__' => 'Luanda',
'om__order_date__year' => '2017',
'om__order_date__quarter' => '3',
'om__order_date__month' => '9',
),
2 =>
array (
'sum1' => '352839.60000000003',
'count1' => '9',
'sm__state_name__' => NULL,
'om__order_date__year' => '2017',
'om__order_date__quarter' => '3',
'om__order_date__month' => '9',
),
3 =>
array (
'sum1' => '7729331.52',
'count1' => '119',
'sm__state_name__' => 'Benguela',
'om__order_date__year' => '2017',
'om__order_date__quarter' => '3',
'om__order_date__month' => '9',
),
4 =>
array (
'sum1' => '1012936',
'count1' => '17',
'sm__state_name__' => 'Zaire',
'om__order_date__year' => '2017',
'om__order_date__quarter' => '3',
'om__order_date__month' => '9',
),
5 =>
array (
'sum1' => '1054883',
'count1' => '19',
'sm__state_name__' => 'Bie',
'om__order_date__year' => '2017',
'om__order_date__quarter' => '3',
'om__order_date__month' => '9',
),
6 =>
array (
'sum1' => '2347944',
'count1' => '26',
'sm__state_name__' => 'Cuando Cubango',
'om__order_date__year' => '2017',
'om__order_date__quarter' => '3',
'om__order_date__month' => '9',
),
7 =>
array (
'sum1' => '428769.6000000001',
'count1' => '60',
'sm__state_name__' => 'Bengo',
'om__order_date__year' => '2017',
'om__order_date__quarter' => '3',
'om__order_date__month' => '9',
),
8 =>
array (
'sum1' => '6444569',
'count1' => '86',
'sm__state_name__' => 'Huila',
'om__order_date__year' => '2017',
'om__order_date__quarter' => '3',
'om__order_date__month' => '9',
),
9 =>
array (
'sum1' => '4914030',
'count1' => '25',
'sm__state_name__' => 'Cunane',
'om__order_date__year' => '2017',
'om__order_date__quarter' => '3',
'om__order_date__month' => '9',
),
10 =>
array (
'sum1' => '1167200',
'count1' => '26',
'sm__state_name__' => 'Cuanza North',
'om__order_date__year' => '2017',
'om__order_date__quarter' => '3',
'om__order_date__month' => '9',
),
11 =>
array (
'sum1' => '750080',
'count1' => '10',
'sm__state_name__' => 'Cuanza Sul',
'om__order_date__year' => '2017',
'om__order_date__quarter' => '3',
'om__order_date__month' => '9',
),
12 =>
array (
'sum1' => '2178100',
'count1' => '6',
'sm__state_name__' => 'Huambo',
'om__order_date__year' => '2017',
'om__order_date__quarter' => '3',
'om__order_date__month' => '9',
),
13 =>
array (
'sum1' => '1099934',
'count1' => '25',
'sm__state_name__' => 'Lunda North',
'om__order_date__year' => '2017',
'om__order_date__quarter' => '3',
'om__order_date__month' => '9',
),
14 =>
array (
'sum1' => '410135',
'count1' => '12',
'sm__state_name__' => 'Malange',
'om__order_date__year' => '2017',
'om__order_date__quarter' => '3',
'om__order_date__month' => '9',
),
)
Array
(
"sm__state_name__",
"om__order_date__year",
"om__order_date__quarter",
"om__order_date__month",
)
ABOBE 数组包含可以是任意数量的字段
以下是我想要的回报的示例输出
{
"data": [
{
"key": "Luanda",
"items": [
{
"key": 2017,
"items": [
{
"key": 3,
"items": [
{
"key": 8,
"items": null,
"count": 4,
"summary": [
438380.9935
]
},
{
"key": 9,
"items": null,
"count": 1606,
"summary": [
438380.9935
]
},
],
"summary": [
1285085.9636
]
}
],
"summary": [
1285085.9636
]
}
],
"summary": [
1285085.9636
]
},
{
"key": "Benguela",
"items": [
{
"key": 2017,
"items": [
{
"key": 3,
"items": [
{
"key": 9,
"items": null,
"count": 679,
"summary": [
4781987.8575
]
},
],
"summary": [
15017212.0305
]
}
],
"summary": [
15017212.0305
]
}
],
"summary": [
15017212.0305
]
},
{...},
{...},
{...},
],
"totalCount": 22854
}
不要介意汇总值。我只是把虚拟值放在那里。
这种过程甚至可能吗?因为我想到了很多不同的东西,递归、多重循环、三重循环,但想不出这种方法可行。
我知道这不是问题或错误。对此感到抱歉。但如果有人能指出正确的方向,那就太好了。
【问题讨论】:
-
是的,但是可以,如果数据是固定的,您可以使用嵌套循环,也可以将 sql 的数据以数组格式粘贴,这样我们就可以在不将表数据复制到数组的情况下对其进行测试跨度>
-
@Jerson 我已经编辑了表格数据的数组格式的代码。
-
可以用var_export代替print_r来打印吗
-
等一下
-
深嵌套的摘要从何而来?