Gibt es eine Methode, um zu überprüfen, ob alle Array-Elemente '0' sind?

7

Ich habe ein Array

%Vor%

Ich möchte überprüfen, ob alle Array-Werte Null sind.

%Vor%

Danke

    
Student 14.08.2011, 15:22
quelle

9 Antworten

16

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:

%Vor%

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:

%Vor%

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.

    
Pascal MARTIN 14.08.2011, 15:24
quelle
5

Wie wäre es mit:

%Vor%     
Decent Dabbler 14.08.2011 15:45
quelle
3

Verwenden Sie dies:

%Vor%

Dies ist viel schneller (Laufzeit) als die Verwendung von array_filter , wie in anderen Antworten vorgeschlagen.

    
Dani 14.08.2011 15:27
quelle
2

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):

%Vor%

@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

    
knittl 14.08.2011 15:33
quelle
1

Ein anderer Weg:

%Vor%     
dev-null-dweller 14.08.2011 15:45
quelle
1

Eine andere schnelle Lösung könnte sein:

%Vor%     
chrbak 09.09.2015 11:35
quelle
0
%Vor%     
jackocnr 12.07.2012 15:57
quelle
0

Ich bin ein bisschen spät zur Party, aber wie wäre es damit:

%Vor%

Ein ähnlicher Trick verwendet array_unique ().

    
HarryD 22.03.2015 16:04
quelle
0

Sie können diese Funktion verwenden

%Vor%     
fsalazar_sch 28.04.2015 02:49
quelle

Tags und Links