Ich nehme an, Sie könnten array_filter()
verwenden, um ein Array aller Elemente zu erhalten, die nicht vorhanden sind -Null ; und verwenden Sie empty()
für das resultierende Array, um festzustellen, ob es leer ist oder nicht.
Zum Beispiel mit Ihrem Beispiel-Array:
Verwenden Sie den folgenden Codeabschnitt:
%Vor%Würde Ihnen ein leeres Array zeigen, das kein Nicht-Null-Element enthält:
%Vor%Und etwas wie folgt verwenden:
%Vor%Würde Ihnen die folgende Ausgabe liefern:
%Vor%
Auf der anderen Seite mit dem folgenden Array:
Das $ tmp-Array würde enthalten:
%Vor%Und als solches wäre es nicht leer.
Beachten Sie, dass die Rückgabe eines Callbacks als zweiter Parameter an array_filter()
nicht funktioniert, weil (quoting) :
Wenn kein Callback angegeben wird, sind alle Eingaben von FALSE gleich (siehe Umwandlung in boolean ) wird entfernt.
Sie können das Array loopen und auf dem ersten Wert ungleich Null enden (Schleifen bis nicht Null, also ziemlich schnell, wenn ein Wert ungleich Null am Anfang des Arrays ist):
%Vor% oder verwenden Sie array_sum
(führt einmal eine vollständige Schleife durch):
@fireeyedboy hatte einen sehr guten Punkt bezüglich der Summierung: Wenn negative Werte beteiligt sind, kann das Ergebnis sehr wohl Null sein , obwohl das Array aus Werten ungleich null besteht