PHP Anzahl der wahren Werte in einem Booleschen Array

7

Ich habe ein assoziatives Array, in dem ich die Anzahl der booleschen wahren Werte zählen muss.

Das Endergebnis besteht darin, eine if-Anweisung zu erstellen, in der true zurückgegeben wird, wenn nur ein wahrer Wert innerhalb des Arrays existiert. Es müsste false zurückgegeben werden, wenn mehr als ein wahrer Wert innerhalb des Arrays vorhanden ist oder wenn innerhalb des Arrays keine wahren Werte vorhanden sind.

Ich weiß, der beste Weg wäre, in irgendeiner Form count und in_array zu verwenden. Ich bin mir nicht sicher, ob das funktionieren würde, nur von meinem Kopf, aber selbst wenn, ist das der beste Weg?

%Vor%     
ThatTechGuy 07.05.2013, 21:12
quelle

5 Antworten

27

Ich würde Array_filter verwenden.

%Vor%

Ссылка

Array_filter entfernt Werte, die falsch-y sind (Wert == false). Dann zähle einfach. Wenn Sie nach einem bestimmten Wert filtern müssen, zum Beispiel wenn Sie nach einem bestimmten Wert suchen, akzeptiert array_filter einen optionalen zweiten Parameter, bei dem es sich um eine Funktion handelt, die definiert, ob ein Wert wahr (nicht gefiltert) oder falsch (ausgefiltert) zurückgegeben wird ).

    
Jonathan Kuhn 07.05.2013, 21:16
quelle
7

Da TRUE auf 1 geworfen wird und FALSE auf 0 geworfen wird. Sie können auch array_sum

%Vor%

Aus dem Dokument : "FALSE wird ergebe 0 (null) und TRUE ergibt 1 (eins). "

    
Frédéric Clausset 07.05.2013 22:16
quelle
2

Versuchen Sie diesen Ansatz:

%Vor%

Ergebnis:

%Vor%

Dokumentation

    
ROMMEL 07.05.2013 21:19
quelle
0

so?

%Vor%     
user1299518 07.05.2013 21:17
quelle
0

Haben Sie versucht, array_count_values ​​ zu verwenden, um ein Array mit allen gezählten Daten zu erhalten? Dann überprüfe, wie viele Wahrheiten es gibt?

    
Ruben Weerts 07.05.2013 21:19
quelle