Wie Sie aus dem folgenden Array sehen können, gibt es drei Elemente, die am 18. November erscheinen, und zwei weitere, die am 22. November erscheinen. Kann mir jemand sagen, wie ich die Zählungen von 3 und 2 von diesem Array abrufen kann ? Grundsätzlich möchte ich mit einem Ergebnis wie folgt enden:
18. November 2011 = 3 Artikel
22. November 2011 = 2 Artikel
Natürlich variieren die Daten und die Anzahl der verschiedenen Daten jedes Mal. Hier ist das Array:
%Vor%Funktioniert das für das, was Sie brauchen?
%Vor%Drucke:
%Vor%Hinweis: Dies setzt voraus, dass Sie beim Strukturieren Ihres Arrays immer Daten erhalten und dass jedes Datum gleich formatiert wird. Wenn Sie nicht davon ausgehen können, dass jedes Datum formatiert wird, wäre dies eine einfache Konvertierung mit der Funktion date (). Wenn Sie nicht davon ausgehen können, dass Sie genau so strukturierte Daten erhalten, wäre der beste Weg, dies zu tun, wahrscheinlich eine rekursive Funktion.
Die geposteten Antworten sind für Ihr repräsentatives Beispiel korrekt, aber ich möchte eine andere Lösung hinzufügen, die unabhängig davon funktioniert, wie viele verschachtelte Arrays Sie erstellen. Es wiederholt das Array rekursiv und zählt alle Elemente in allen Sub-Arrays.
gibt die Gesamtzahl der Elemente im Array zurück. Im zweiten Argument können Sie ein Array angeben Referenz, die die Anzahl pro eindeutiger Schlüssel in den (verschachtelten) Array (s) enthalten wird.
Beispiel:
%Vor%ergibt:
%Vor%Angenommen, Ihr Array-Beispiel ist repräsentativ:
%Vor%Gibt die Anzahl der Arrays in jedem der Haupt-Array-Elemente an. In Ihrem Beispiel wäre das auch die Anzahl der Einträge für jedes Datum.
Dies überprüft natürlich nicht die Daten selbst
Sie können array_walk_recursive()
verwenden, um auf all
Etwas Ähnliches sollte für Sie funktionieren:
%Vor%Ausgaben:
%Vor% Für Ihre spezifische $array
-Struktur denke ich, dass die einfachste Methode die Verwendung von foreach
ist und dann den Datumswert und die count()
aus jedem Wert herausholt:
Mit Ihrem $array
erhalten Sie:
Wenn Sie nach einem allgemeineren Weg suchen, können Sie RecursiveArrayIterator
und RecursiveIteratorIterator
verwenden, um über alle Blattschlüssel- / value-Elemente zu traversieren und dann einfach die Schlüssel zu zählen:
Hoffe, das hilft.
Wenn Sie die Elemente eindimensional und zweidimensional zählen möchten, können Sie versuchen:
%Vor%Tags und Links arrays php multidimensional-array