如何从mysql数据库创建多维数组 喜欢
我有三张桌子
Table1 Table3
| ID | GPN | PKGID | | GPN | Amt |
| 1 | A | PKG01 | | A | 10 |
| 2 | B | PKG02 | | A | 15 |
| 3 | C | PKG03 | | A | 20 |
| 4 | D | PKG04 | | A | 25 |
| A | 30 |
| B | 17 |
----------------------------- | D | 90 |
| B | 20 |
Table2 | B | 40 |
| GPN | Date | | D | 60 |
| A | 2016-09-10 | | B | 80 |
| A | 2016-09-18 | | B | 100 |
| B | 2016-09-10 | | C | 3 |
| B | 2016-09-11 | | C | 6 |
| B | 2016-09-12 | | C | 9 |
| C | 2016-10-12 | | C | 12 |
| C | 2016-10-13 | | C | 15 |
| C | 2016-10-14 | | D | 7 |
| D | 2016-09-10 | | D | 10 |
| D | 2016-10-13 | | D | 13 |
我如何制作多维数组
例如
日期= 2016-09-10
我必须代表给定日期从上面三张表中获取所有内容。
所以结果将是这个
Array
(
[0] => Array
(
[PKGID] => PKG01
[GPN] => A
[AMT] => Array
(
[0] => 10
[1] => 15
[2] => 20
[3] => 25
[4] => 30
)
)
[1] => Array
(
[PKGID] => PKG02
[GPN] => B
[AMT] => Array
(
[0] => 17
[1] => 20
[2] => 40
[3] => 60
[4] => 80
[5] => 100
)
)
[2] => Array
(
[PKGID] => PKG04
[GPN] => D
[AMT] => Array
(
[0] => 90
[1] => 60
[2] => 7
[2] => 10
[2] => 13
)
)
)
我正在使用php和mysql。
有没有最简单的 mysql查询这样做,我必须执行一次,因为现在我正在执行 mysql查询多次循环来制作该数组< / p>
答案 0 :(得分:2)
最简单的方法是
$arr = array();
while($row = fetch()) {
$arr[$row['key1']][$row['key2']][etc...][] = $row;
}
在构建数组时,只需使用你想要的任何字段来关闭AS键的数据。