如何从mysql

时间:2016-08-03 18:38:04

标签: php mysql arrays multidimensional-array

如何从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>

1 个答案:

答案 0 :(得分:2)

最简单的方法是

$arr = array();
while($row = fetch()) {
   $arr[$row['key1']][$row['key2']][etc...][] = $row;
}

在构建数组时,只需使用你想要的任何字段来关闭AS键的数据。