Ich habe eine Tabelle von Rennen, die die Rennen Name, Rennen id und Renndatum haben.PHP Array Merge Ausgabe
Ich versuche, ein einzelnes Array zu bauen (es hat ein einzelnes Array über einen Funktionsaufruf zurückgegeben werden), die eine Liste der Rennen in folgendem Format enthalten würde:
,,---2017---
The Resolution AR, 58, 1.14.2017
Heartbreaker AR, 59, 2.11.2017
,,---2016---
The Blue Ridge AR, 38, 5.21.2016
The Fathers Day AR, 43, 6.18.2016
Adventure Bike (Santos), 54, 7.30.2016
,,---2015---
Gemini Springs AR, 4, 12.14.2015
Ich bin fast dort! Aber ich habe ein Problem.
Dies ist der aktuelle Code, den ich habe:
function get_races() {
// get all the years that have races
$years = $wpdb->get_results("
select DATE_FORMAT(r.race_date,'%Y') year
from race_calendar r
group by DATE_FORMAT(r.race_date,'%Y')
order by DATE_FORMAT(r.race_date,'%Y') desc;
");
// loop through all years that have races
foreach ($years as $year) {
// add year header to array
$year_header = array(array ('','','---'.$year->year.'---'));
// get races for this particular year
$races = $wpdb->get_results("
select r.race_name
,r.race_id
,date_format(r.race_date,'%c.%d.%Y') race_date
from race_calendar r
where DATE_FORMAT(r.race_date,'%Y') = ".$year->year."
order by r.race_date;
", ARRAY_N);
// merge the year header and the races into an array
$merged_arr = array_merge($year_header, $races);
}
return $merged_arr;
}
// call function to get list of races
$races = get_races();
// display the list of races (with the year separator)
foreach ($races as $race)
{
echo $race['0'] . ',' . $race['1'] . ',' . $race['2'] . '<br />';
}
Es funktioniert. Aber Problem ist vor nur dieser Code zeigt die letzte Iteration der Jahre Schleife, in diesem Fall :
,,---2015---
Gemini Springs AR, 4, 12.14.2015
Offensichtlich $ merged_arr beginnen wird mit jeder Iteration der Jahre Schleife zurückgesetzt
Wie kann ich es aktualisieren, so dass das resultierende Array in der Funktion die Daten für alle Iterationen der Jahre Schleife enthält?
Perfekt! Vielen Dank! – mannyotr