Array mit Nullen füllen

8

Ich führe eine MySQL-Abfrage aus und das resultierende Array ist ungefähr so, das sich jeden Monat ändert:

%Vor%

Ich möchte Tage hinzufügen, damit ich 31 Tage bekomme, die hinzugefügten werden mit 0 gefüllt, so:

%Vor%

Ich möchte das Array mit 31 Tagen füllen, indem ich die Tage und Zählungsdaten verwende, die bereits da sind ... wie im zweiten Beispiel ... die Tage 1 und 3 wählten dorthin ... also fügte ich sie hinzu mit dem Zählwert 0 ... in der Reihenfolge ... 1 ~ 31 Tage

Die Abfrage ist ziemlich einfach:

%Vor%

so hat jeder Monat unterschiedliche Anzahl von "Tagen", einige Monate gibt es keine Anrufe.

    
Edgar 09.07.2015, 03:54
quelle

4 Antworten

2

Versuchen Sie dies auch, ändern Sie range(1,10) gemäß Ihrer Anforderung

%Vor%

Ausgabe

%Vor%

- Für Kommentar bearbeiten -

für ältere Version von PHP, die nicht array_column

hat %Vor%     
Akshay Hegde 09.07.2015, 05:08
quelle
3

Ich würde empfehlen, eine Kalender-Tabelle in Ihrer Datenbank zu erstellen, um alle Daten zu speichern. Dann können Sie aus dieser Tabelle auswählen und links Ihre anderen Daten verbinden, um eine Gesamtzahl pro Tag zu erhalten. Dieser Artikel eignet sich gut zum Erstellen einer Kalendertabelle und diese Stack-Overflow-Post enthält eine ähnliche Frage und Antwort auf Ihr Problem .

Es gibt auch PHP-Lösungen, wie zum Beispiel das Iterieren eines Datumsbereichs unter Verwendung der php-eingebauten DateTime- und DateInterval-Klassen wie in diese Stackoverflow-Frage

    
dnapierata 09.07.2015 04:00
quelle
1

Wenn Sie dies für weitere Monate als Juli tun, legen Sie zunächst Ihren Zielmonat als Variable fest und erhalten Sie die Anzahl der Tage:

%Vor%

Führen Sie anschließend Ihre Abfrage aus und durchlaufen Sie die Ergebnisse, um ein Array zu erstellen, das am Tag indiziert ist:

%Vor%

Jetzt können Sie eine einfache for Schleife erstellen und die fehlenden Teile ausfüllen:

%Vor%     
billynoah 09.07.2015 04:34
quelle
0
%Vor%     
tapos ghosh 09.07.2015 04:19
quelle

Tags und Links