Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrdimensionales Array schreiben mit gleichen Key und mehrere Werte ?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mehrdimensionales Array schreiben mit gleichen Key und mehrere Werte ?

    Hallo,
    ich bekomme von meine Datenbankabfrage folgen Ergebnis die ich für weitere Zwecke in ein Array schreiben möchte.
    Leider hapert es an der Umsetzung.

    Ergebnis:
    pkey id name wert
    1 10 Comp X 1
    2 10 Comp X 14
    3 10 Comp X 27
    4 10 Comp X 32
    5 12 CC Y 1
    6 12 CC Y 14
    7 14 XYZ 27
    8 14 XYZ 32
    Das wollte ich mit foreach in eine Array Schreiben und Doppelte Werte zusammen für einen Key (hier die ID ist eindeutig).

    So wollte ich mein Array füllen und ID's etc... überprüfen. (Was leider nicht klappt)
    PHP-Code:
    ...
    foreach(
    $result as $key => $row){
         
    $meinArray [] = array("id"=>$row["id"], "name"=>$row["name"], "wert"=>$row["wert"]); // Beispiel
    /**
    * Hier habe ich vieles ausprobiert
    * leider ohne Erfolg!
    * (ID's erst anlegen und dann Werte versuchen nacheinander einzutragen etc...)
    */

    Mein Array sollte dann so aus sehen!
    Code:
    [0] id = 10, name = Comp X, wert = 1,14,27,32
    [1] id = 12, name = CC Y, wert = 1,14
    [2] id = 14, name = XYZ, wert =  27, 32
    
    array(3) {
        [0]=>
        array(3) {
            ["id"]=>
            string(2) "10"
            ["name"]=>
            string(6) "Comp X"
            ["wert"]=>
            array(4) {
                [0]=>
                string(1) "1"
                [1]=>
                string(2) "14"
                [2]=>
                string(2) "27"
                [3]=>
                string(2) "32"
                }
            }
        [1]=>
        array(3) {
            ["id"]=>
            string(2) "12"
            ["name"]=>
            string(6) "CC Y"
            ["wert"]=>
            array(2) {
                [0]=>
                string(1) "1"
                [1]=>
                string(2) "14"
                }
            }
    ...  
    }
    Jetzt Möchte ich wissen Ob das so Möglichst ist?
    Oder gibt es eine andere alternative um so etwas umzusetzen.

    Für jede Hilfe bin ich sehr Dankbar,
    da ich mit meinem Latein am Ende bin (habe das Gefühl das ich was übersehe!).

    MfG c01001.
    Ob eine Sache gelingt, erfährst du nicht, wenn du darüber nachdenkst, sondern wenn du es ausprobierst.

  • #2
    PHP-Code:
    foreach($result as $key => $row){
         
    $meinArray[$row["id"]]["id"] = $row["id"];
         
    $meinArray[$row["id"]]["name"] = $row["name"];
         
    $meinArray[$row["id"]]["wert"][] = $row["wert"];

    }  

    echo 
    '<pre>';
    print_r($meinArray);
    echo 
    '</pre>'

    Kommentar


    • #3
      Sorry, passt doch

      Kommentar


      • #4
        Zitat von c01001 Beitrag anzeigen
        ich bekomme von meine Datenbankabfrage folgen Ergebnis die ich für weitere Zwecke in ein Array schreiben möchte.
        Was spricht dagegen das Gruppieren gleich die Datenbank selbst machen zu lassen? Bei MySQL sollte ein GROUP_CONCAT() helfen.

        Kommentar


        • #5
          Warum nicht nur nach der id gruppieren? Wenn du PDO nutzt, kann dies mit PDO::FETCH_GROUP direkt aus der Datenbank gezogen werden. Das Ergebnis sieht jedoch dann etwas anders aus als oben beschrieben.
          Brauchst du genau diese Struktur?

          Kommentar

          Lädt...
          X