Morgen Leute!
Ich bin auf der Suche nach einer Funktion/Befehl/wasauchimmer, mit der ich ein mehrdimensionales Array anhand eines Wertes innerhalb dieses Arrays in mehrere kleinere Arrays zerlegen kann.
Hintergrund: ich habe ein Bundesliga-Tippspiel, bei dem ich die Spielpaarungen aus der DB auslese und eben in ein Array packe. Dieses array mit dann 306 Schlüsseln (34 Spieltage x 9 Spielpaarungen) möchte ich nun in kleinere Arrays bzw. in ein mehrdimensionales Array aufteilen, sodass für jeden Spieltag ein Schlüssel angegeben wird (also insgesamt 34 mal).
Bisher habe ich das mit array_chunk($array, 9) gelöst, aber da ich diese Vorgehensweise auch gerne bei anderen Arrays anwenden möchte (bisher hab ich mit viel zu vielen MySQL-Queries gearbeitet, das will ich ändern), würde ich gerne wissen, ob das möglich ist.
Im PHP-Manual hab ich mir schon die Array-Funktionen angeguckt, aber entweder bin ich zu blöd (gut möglich), oder dort gibt es wirklich nichts. Entsprechendes gilt für das Forum hier.
Alternativ wäre eine MySQL-Abfrage, die dieses Array gleich so zurechtrückt, natürlich auch gerne gesehen. GROUP BY habe ich bereits probiert, liefert aber nicht das gewünschte Ergebnis (was ja auch logisch ist).
An sich wäre ein MySQL-Statement in meinen Augen sogar die "schönere" Lösung, aber ich bin mir nicht sicher, ob das dort überhaupt geht (deswegen auch eine PHP-Frage ).
Hier der relevante (gekürzte) Code:
Das aus der DB ausgelesene Array hat dann folgendes Aussehen:
Und anstatt jetzt eben ein Array mit 306 Schlüsseln zu haben, hätte ich gerne eines mit 34 bzw. eben mehrere mit den Paarungen des jeweiligen Spieltags
Mit array_chunk() funktioniert es wie gesagt, allerdings stört mich da, dass ich einen festen Wert (9) eingeben muss, der bei anderen Arrays durchaus dynamisch sein kann.
Das gesplittete Array sieht dann so aus:
Hoffe um Hilfe
Ich bin auf der Suche nach einer Funktion/Befehl/wasauchimmer, mit der ich ein mehrdimensionales Array anhand eines Wertes innerhalb dieses Arrays in mehrere kleinere Arrays zerlegen kann.
Hintergrund: ich habe ein Bundesliga-Tippspiel, bei dem ich die Spielpaarungen aus der DB auslese und eben in ein Array packe. Dieses array mit dann 306 Schlüsseln (34 Spieltage x 9 Spielpaarungen) möchte ich nun in kleinere Arrays bzw. in ein mehrdimensionales Array aufteilen, sodass für jeden Spieltag ein Schlüssel angegeben wird (also insgesamt 34 mal).
Bisher habe ich das mit array_chunk($array, 9) gelöst, aber da ich diese Vorgehensweise auch gerne bei anderen Arrays anwenden möchte (bisher hab ich mit viel zu vielen MySQL-Queries gearbeitet, das will ich ändern), würde ich gerne wissen, ob das möglich ist.
Im PHP-Manual hab ich mir schon die Array-Funktionen angeguckt, aber entweder bin ich zu blöd (gut möglich), oder dort gibt es wirklich nichts. Entsprechendes gilt für das Forum hier.
Alternativ wäre eine MySQL-Abfrage, die dieses Array gleich so zurechtrückt, natürlich auch gerne gesehen. GROUP BY habe ich bereits probiert, liefert aber nicht das gewünschte Ergebnis (was ja auch logisch ist).
An sich wäre ein MySQL-Statement in meinen Augen sogar die "schönere" Lösung, aber ich bin mir nicht sicher, ob das dort überhaupt geht (deswegen auch eine PHP-Frage ).
Hier der relevante (gekürzte) Code:
PHP-Code:
// Spielpaarungen auslesen
$result_spieltage = mysql_query("
SELECT
p.id AS id,
p.tore_heim AS tore_heim,
p.tore_gast AS tore_gast,
p.datum AS datum,
p.spieltag AS spieltag
FROM
paarungen AS p
WHERE
p.spieltag BETWEEN $anfang AND $ende
ORDER BY
spieltag,
datum");
// Paarungen in Array packen
while ($spieltage = mysql_fetch_array($result_spieltage, MYSQL_ASSOC))
{
$spieltage_arr[] = $spieltage;
}
// Array in Array mit je 9 Werten aufsplitten (9 Spiele pro Tag)
$spieltage_arr_split = array_chunk($spieltage_arr, 9);
Das aus der DB ausgelesene Array hat dann folgendes Aussehen:
PHP-Code:
Array
(
[0] => Array
(
[id] => 1
[tore_heim] => 1
[tore_gast] => 0
[datum] => 2004-08-06
[spieltag] => 1
[name_heim] => Werder Bremen
[name_gast] => FC Schalke 04
)
[...]
[305] => Array
(
[id] => 306
[tore_heim] =>
[tore_gast] =>
[datum] => 2005-05-21
[spieltag] => 34
[name_heim] => SC Freiburg
[name_gast] => FC Schalke 04
)
}
Mit array_chunk() funktioniert es wie gesagt, allerdings stört mich da, dass ich einen festen Wert (9) eingeben muss, der bei anderen Arrays durchaus dynamisch sein kann.
Das gesplittete Array sieht dann so aus:
PHP-Code:
Array
(
[0] => Array
(
[0] => Array
(
[id] => 1
[tore_heim] => 1
[tore_gast] => 0
[datum] => 2004-08-06
[spieltag] => 1
[name_heim] => Werder Bremen
[name_gast] => FC Schalke 04
)
[...]
}
[...]
[33] => Array
(
[...]
[8] => Array
(
[id] => 306
[tore_heim] =>
[tore_gast] =>
[datum] => 2005-05-21
[spieltag] => 34
[name_heim] => SC Freiburg
[name_gast] => FC Schalke 04
)
)
)
Kommentar