Mehrdimensionales Array in DB schreiben

Maniac

Erfahrenes Mitglied
Ich und meine Arrays....

Ich werd da glau nie richtig dahinter kommen wie man die Arrays mit ihren Indexen und Keys anspricht.

ich habe folgendes Array:

Code:
Array
(
    [1] => Array
        (
            [1] => Array
                (
                    [Gast] => Team1
                    [Heim] => Team2
                )

            [2] => Array
                (
                    [Gast] => Team3
                    [Heim] => Team4
                )

            [3] => Array
                (
                    [Gast] => Team5
                    [Heim] => Team6
                )

            [4] => Array
                (
                    [Gast] => Team7
                    [Heim] => Team8
                )

            [5] => Array
                (
                    [Gast] => Team9
                    [Heim] => Team10
                )

        )

    [2] => Array
        (
            [6] => Array
                (
                    [Gast] => Team2
                    [Heim] => Team3
                )

            [7] => Array
                (
                    [Gast] => Team4
                    [Heim] => Team5
                )

            [8] => Array
                (
                    [Gast] => Team6
                    [Heim] => Team7
                )

            [9] => Array
                (
                    [Gast] => Team8
                    [Heim] => Team9 
               )

            [10] => Array
                (
                    [Gast] => Team10
                    [Heim] => Team1
                )

        )

)

so sieht es im Moment aus. Dieses Array wird durch einen Spielplan generiert. Diesen Spielplan möchte ich nun in eine Tabelle schreiben.
Für jedes Spiel eine Zeile.
Spalten währen dann einmal die "id" zum zählen, der Spieltag welcher aus dem ersten Schlüssel des Array geholt werden muss, die Spielnummer welche aus dem 2. Schlüssel genommen wird und eben den Teams.

Wo ich jetzt mein Problem hab ist, das die fortlaufende Nummerierung beibehalten werden muss weil das die Spielnummer ist welche zur späteren Verwendung benötige.

Wie kann ich das nun machen? Mit einer foreach-schleife? mit einer for?
Den ersten Schlüssel kann ich mir schon ausgeben lassen, das wäre kein problem. Nur eben die anderen Ebenen des Arrays.
dieses möchte ich nun in
 
Hi,

Ich habe wie gesagt noch keinen konkreten Ansatz. Nur vermutungen. Das was ich bis jetzt versucht habe funktioniert nicht.

PHP:
foreach($a as $key => $value)
		{
			echo $key." --> ".$value."<br />";
		}
        
echo "<pre>";
 print_r($a);
echo "</pre>";

die Schleife gibt bei 27 Spieltagen foglendes zurück:

Code:
1 --> Array
2 --> Array
3 --> Array
4 --> Array
5 --> Array
6 --> Array
7 --> Array
8 --> Array
9 --> Array
10 --> Array
11 --> Array
12 --> Array
13 --> Array
14 --> Array
15 --> Array
16 --> Array
17 --> Array
18 --> Array
19 --> Array
20 --> Array
21 --> Array
22 --> Array
23 --> Array
24 --> Array
25 --> Array
26 --> Array
27 --> Array
 
Naja das liegt wohl daran das jeder Spieltag wieder nen Array ist.

Also nochmal ne Schleife in die Schleife ;)

lg
 
Dann müssten es ja quasi 3 Schleifen werden, da es 3 Arrays sind.
Ich hatte das schon mit einer weiteren Schleife versucht, doch bekam
Dann einen Fehler. Weiß jetzt nur nicht mehr genau welchen, da ich
Unterwegs bin und vom Handy aus schreibe. Werde das aber morgen
gleich nochmal testen.
 
[..]da ich Unterwegs bin und vom Handy aus schreibe.
Hast denn keinen Webserver auf deinem Handy? ;)
Dann müssten es ja quasi 3 Schleifen werden, da es 3 Arrays sind.
Richtig.
PHP:
foreach($a as $spieltag => $value) {
  echo "ich bin der Spieltag: $spieltag";
  foreach($spieltag as $spielnummer => $value) {
    echo "ich bin die Spielnummer: $spielnummer";
    foreach($spielnummer as $teams) {
      echo 'ich sind zwei Teams: '.$teams['Gast'].', '.$teams['Heim'];
    }
  }
}
So oder so ähnlich könnte es tendenziell funktionieren. :)
 
Soooooooo :D

Also danke erstmal DeluXe für deinen Ansatz, war zwar nicht richtig aber hat mich auf den richtigen Weg gebracht. Mit 3 foreach-Schleifen hat es nicht funktioniert da er ja im letzten Array auch noch 2 Einträge hat und mir das dann doppelt ausgegeben hatte. Ich habe nun als letzte Schleife eine for-Schleife eingebaut, mit dieser funktioniert es perfekt.

PHP:
foreach($a as $spieltag => $value)
		{
			foreach($value as $spielnummer => $value2)
			{
				$anzahl = count($spielnummer);
				for($i=1; $i<=$anzahl;$i++)
				{
					echo "ich bin Spieltag: $spieltag und Spielnummer: $spielnummer. Es spielen ".$value2['Heim']." gegen ".$value2['Gast']."<br />";
				}
			}
		}

Ausgabe:

Code:
ich bin Spieltag: 1 und Spielnummer: 1. Es spielen Domino Uhus gegen Drei Rosen
ich bin Spieltag: 1 und Spielnummer: 2. Es spielen DC Krümel gegen Die Schuldigen
ich bin Spieltag: 1 und Spielnummer: 3. Es spielen Teenies und Opa gegen Mighty Darts
ich bin Spieltag: 1 und Spielnummer: 4. Es spielen Flying Bears gegen Overclocks
ich bin Spieltag: 1 und Spielnummer: 5. Es spielen DC Hackstock gegen Bären 3
ich bin Spieltag: 2 und Spielnummer: 6. Es spielen Drei Rosen gegen DC Krümel
ich bin Spieltag: 2 und Spielnummer: 7. Es spielen Mighty Darts gegen Domino Uhus
ich bin Spieltag: 2 und Spielnummer: 8. Es spielen Die Schuldigen gegen Flying Bears
ich bin Spieltag: 2 und Spielnummer: 9. Es spielen Bären 3 gegen Teenies und Opa
ich bin Spieltag: 2 und Spielnummer: 10. Es spielen Overclocks gegen DC Hackstock
ich bin Spieltag: 3 und Spielnummer: 11. Es spielen Mighty Darts gegen Drei Rosen
ich bin Spieltag: 3 und Spielnummer: 12. Es spielen Flying Bears gegen DC Krümel
ich bin Spieltag: 3 und Spielnummer: 13. Es spielen Domino Uhus gegen Bären 3
ich bin Spieltag: 3 und Spielnummer: 14. Es spielen DC Hackstock gegen Die Schuldigen
ich bin Spieltag: 3 und Spielnummer: 15. Es spielen Teenies und Opa gegen Overclocks
ich bin Spieltag: 4 und Spielnummer: 16. Es spielen Drei Rosen gegen Flying Bears
usw.....

Jetzt muss ich nur noch schauen wie ich das noch mit den Heimspieltagen und KAlenderfunktion einbaue, werde da sicher nochmal einen Thread aufmachen deswegen *g*
 
Zurück