2016-08-03 8 views
1

machen wie ein mehrdimensionales Array aus MySQL-Datenbank WieWie mehrdimensionales Array von mysql

Ich habe drei Tabelle

  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 | 

wie ich ein mehrdimensionales Array

Für das Beispiel machen müssen machen

Datum = 2016-09-10

Ich muss alle von oben drei Tabellen im Namen des angegebenen Datums bekommen.

so wird das Ergebnis dieses

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 
       ) 
     ) 
) 

sein ich PHP und MySQL verwende.

Gibt es eine einfachste mysql query dass Hexe i, weil man Zeit für die Ausführung zu tun haben, jetzt bin Ausführung i mysql query mehrere Zeit in Schleife, die Anordnung zu machen

+0

triviale Lösung würde group_concat in der Abfrage verwenden und explodieren später beim Abrufen – bwoebi

+0

group_concat, wie das Sir – User97798

+0

Table2 scheint für die Ausgabe irrelevant zu sein, die Sie versuchen zu bekommen. –

Antwort

2

einfachste Weg ist

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

Verwenden Sie einfach die Felder, die Sie möchten, um Ihre Array aus AS-Schlüssel während der Erstellung des Arrays.

+0

Sir Was wird MySQL Query sein – User97798

+0

^... die Handlung verdichtet, sozusagen. –

+2

Das ist dein Job. Wir schreiben Ihren Code nicht für Sie. –