WernerK: Array vergrößern, zusammenführen

Hallo,

die Funktion "get_MyMySQLData(" liefert aus einer MySQL Abfrage ein mehrdimensionales Array zurück. Da es in der foreach Schleife mehrere Durchläufe geben kann, möchte ich gerne alle Ergebnisse merken und in einem neuen Array speichern. Es soll aber kein neues Array geben (also nicht $data[]) sondern die Ergebnisse sollen aneinandergehängt werden. Ich habe schon array_push() gefunden aber hier braucht man ja wieder einzelne Werte und kein ganzes Array. Wie kann man alle Durchläufe speichern ohne dass eine neue "Dimension" entsteht?

foreach($sql_id as $single_id){ $data = get_MyMySQLData(single_id['myid']); }

Gruss Werner

  1. Hallo Werner,

    Es soll aber kein neues Array geben (also nicht $data[]) sondern die Ergebnisse sollen aneinandergehängt werden.

    so ganz verstehe ich Deine Frage leider nicht. Ich rate einfach mal drauf los: Suchst Du sowas wie array-merge?

    Gruß Dennis

    1. Hallo Dennis, ja,ich denke Wenn die Foreach Schleife 3 mal durchlauf wird ja momentan nur der letzte Schleifendurchlauf übermittelt. Ich möchte aber alle 3 Durchläufe merken ohne dass die Array Struktur verändert wird. Kann man denn mit array_merge das gleiche Array mergen?

      also $data = array_merge($sqldata, $sqldata);

      foreach($sql_id as $single_id){ $data = get_MyMySQLData(single_id[‚myid‘]); }

      Gruss Werner

      1. Hallo Werner,

        Kann man denn mit array_merge das gleiche Array mergen?

        also $data = array_merge($sqldata, $sqldata);

        keine Ahnung, probier's aus :-)

        Ansonsten: Leg doch ein Array außerhalb der foreach-Schleife an und innerhalb der Schleife dann array-merge mit dem Array von außerhalb und dem Ergebnis des Funktionsaufrufs.

        Gruß Dennis

        1. Hallo,

          Ansonsten: Leg doch ein Array außerhalb der foreach-Schleife an und innerhalb der Schleife dann array-merge mit dem Array von außerhalb und dem Ergebnis des Funktionsaufrufs.

          so habe ich es ja zuerst versucht. Aber dann bekomme ich noch eine neue Dimension im Array.

          1. Liebe Mitdenker, liebe Wissende, liebe Neugierige,

            so habe ich es ja zuerst versucht. Aber dann bekomme ich noch eine neue Dimension im Array.

            Dann zeig uns doch deinen Code (bitte ohne Bunt und Pixelschubserei) und schreib dazu, was du meinst, was der tun soll und was Du schon festgestellt hast, was er leider nicht tut.

            Spirituelle Grüße
            Euer Robert
            robert.r@online.de

            --
            Möge der wahre Forumsgeist ewig leben!
            1. Hallo so habe ich es jetzt versucht. Aber so wird immer nur der letzte Eintrag von der Schleife gespeichert.

              $team_arr = array();
              	if(!empty($teamid)){
              		$sql_mid = get_ID($teamid);
              		if(!empty($sql_mid)){
              			foreach($sql_managertemid as $singleid){
              				$sql = get_Data($singleid['teamid']);
              			}//foreach
              			$sqldata = array_merge($team_arr, $sql);
              			
              		}
              	}
              
              1. PS: ich hatte auch schon das $sqldata = array_merge($team_arr, $sql); innerhalb der Foreach Schleife mit gleichem Ergebnis.

                1. Hallo Werner,

                  PS: ich hatte auch schon das $sqldata = array_merge($team_arr, $sql); innerhalb der Foreach Schleife mit gleichem Ergebnis.

                  Du überschreibst Dir ja auch $sqldata immer wieder. Innerhalb der foreach-Schleife sowas wie $team_arr = array_merge($team_arr, $sql); sollte gehen. Mache Dir bitte klar, warum.

                  Gruß Dennis

                  1. Hallo Werner,

                    Du überschreibst Dir ja auch $sqldata immer wieder.

                    ist damit dein Problem gelöst? Wenn nein, zeig doch mal deine Kontrollausgaben.

                    Gruß
                    Kalk

                    1. Hallo, sorry für die späte Antwort. Ich kam einfach nicht vorher dazu.

                      ist damit dein Problem gelöst? Wenn nein, zeig doch mal deine Kontrollausgaben.

                      Ja Problem gelöst. War wohl am Freitag Nachmittag nicht mehr ganz bei der Sache :-))

                      vielen Dank an alle Helfer.

                      Gruss Werner

  2. Hi,

    die Funktion "get_MyMySQLData(" liefert aus einer MySQL Abfrage ein mehrdimensionales Array zurück. Da es in der foreach Schleife mehrere Durchläufe geben kann, möchte ich gerne alle Ergebnisse merken und in einem neuen Array speichern.

    Dann ändere doch die get_MyMySQLData, so daß dort gleich in einem Aufwasch die Daten für mehrere single_id-Werte abgerufen und ins Array geschrieben werden.

    cu,
    Andreas a/k/a MudGuard

    1. Hallo

      Dann ändere doch die get_MyMySQLData, so daß dort gleich in einem Aufwasch die Daten für mehrere single_id-Werte abgerufen und ins Array geschrieben werden.

      Das ist nicht so einfach. ich brauche die SQL Abfrage ja auch noch für andere Dinge.