【问题标题】:How to make multidimensional array from mysql如何从mysql制作多维数组
【发布时间】:2016-08-03 18:38:04
【问题描述】:

如何从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 查询 来制作那个数组

【问题讨论】:

  • 简单的解决方案是在查询中使用 group_concat 并在稍后获取时爆炸
  • group_concat 先生该怎么做
  • Table2 似乎与您尝试获得的输出无关。
  • Table2 这里我要查看当天有多少GPN

标签: php mysql arrays multidimensional-array


【解决方案1】:

最简单的方法是

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

在构建阵列时,只需使用您想要将阵列从 AS 键中键控出来的任何字段。

【讨论】:

  • 先生 mysql 查询将是什么
  • ^ ...情节变厚了,就像它一样。
  • 是的你是对的@MarcB 但是通过发布这个问题我想知道最简单的 mysql 查询 女巫我必须执行一次因为现在我正在执行 mysql在循环中多次查询以制作该数组。我还在学习先生,因为@bwoebi 向我推荐了 group_concat 我正在阅读有关该功能和其他类似功能的信息。我正在集中精力不发布垃圾类型的问题。
猜你喜欢
  • 1970-01-01
  • 2019-09-09
  • 2017-06-14
  • 2023-04-01
  • 2019-04-01
  • 1970-01-01
  • 2019-01-11
  • 2010-12-24
  • 1970-01-01
相关资源
最近更新 更多