Ich habe ein Array und möchte herausfinden, ob es mindestens einen falschen Wert gibt. Ich dachte daran, eine array_and()
-Funktion zu erstellen, die nur ein logisches UND auf allen Elementen ausführt. Es würde true zurückgeben, wenn alle Werte wahr sind, andernfalls false. Übertreibe ich?Array UND()? Logische UND-Verknüpfung aller Elemente
Antwort
Warum nicht Sie verwenden nur
in_array
- Prüfen, ob ein Wert in einem Array existiert
Beispiel:
// creates an array with 10 booleans having the value true.
$array = array_fill(0, 10, TRUE);
// checking if it contains a boolean false
var_dump(in_array(FALSE, $array, TRUE)); // FALSE
// adding a boolean with the value false to the array
$array[] = FALSE;
// checking if it contains a boolean false now
var_dump(in_array(FALSE, $array, TRUE)); // TRUE
Danke, ich wusste, ich dachte zu viel :) – user151841
@Benutzer nur um zu verdeutlichen: mit "false value" meinst du eigentlich, du willst überprüfen, ob da ein * boolean false * drin ist das Array, oder? – Gordon
Ja, das ist eine Situation, in der es boolesche 'FALSE' wäre, aber ist dies verallgemeinerbar auf PHP's losen Typprüfung? Für die losen Typprüfungen müsste ich eine Funktion verwenden, nein? – user151841
Es ist nichts falsch mit diesem im Prinzip so lange wie Sie UND alle Werte nicht wahllos; das heißt, sollten Sie so bald enden, wie der erste false
gefunden:
function array_and(array $array)
{
foreach ($array as $value)
{
if (!$value)
{
return false;
}
}
return true;
}
Es ist wahr zurückkehren würde, wenn alle Werte wahr sind, andernfalls false.
Gibt true zurück, wenn Array nicht leer ist, und enthält keine falschen Elemente:
function array_and(arary $arr)
{
return $arr && array_reduce($arr, function($a, $b) { return $a && $b; }, true));
}
(. Beachten Sie, dass Sie strengen Vergleich benötigen würden, wenn Sie gegen den false
Typ testen wollte)
Übertreibe ich?
Ja, denn Sie nutzen könnten:
in_array(false, $arr, true);
der Lage sein, sollten Sie eine kleine Funktion, die ein Array und durchläuft es dauert zu implementieren jedes Mitglied zu überprüfen, ob es falsch ist. Gibt einen Bool aus der Funktion basierend auf dem Ergebnis Ihrer überprüfen ....
Einfach aber hässlich => O (N)
$a = array(1, 2, false, 5, 6, 'a');
$_there_is_a_false = false
foreach ($a as $b) {
$_there_is_a_false = !$b ? true : $_there_is_a_false;
}
eine weitere Option: array-filter
Warum nicht einfach verwenden array_product()
$ set = Array (1,1,1,1,0,0);
$ result = array_product ($ set);
Ausgang: 0
UND Logik ist im Wesentlichen ein Multiplikator.
1 * 1 = 1
1 * 0 = 0
0 * 1 = 0
0 * 0 = 0
- 1. Abrufen aller Array-Elemente mit rs.next()
- 2. Python Index aller Array-Elemente in einem anderen Array finden
- 3. Abrufen aller Elemente mit DynamoDBMapper
- 4. Ersetzen von Elementen und Entfernen aller Elemente
- 5. Ermitteln der Summe aller Elemente in einem 2D-Array
- 6. Logische UND in Forth?
- 7. PHP || und && logische Optimierung
- 8. [Python]: generieren und Array aller möglichen Kombinationen
- 9. d3 Änderung Attribut aller Elemente
- 10. Selectorator.js - Selektor aller versteckten Elemente auf Seite
- 11. Berechnen Sie die Summe aller Zahlen in einem Speicherblock und die Summe aller Elemente in einem Array
- 12. Während Schleife und logische Operationen
- 13. Logische Architektur Diagramm
- 14. Auswahl aller Elemente außer einem und seinen Kindern/Enkelkindern
- 15. Erstellungsfehler ohne logische/Syntaxfehler
- 16. Summe aller Werte aus einem PHP-Array
- 17. Suchen aller Elemente mit einem Bildlauf
- 18. jQuery Selektoren: logische ODER
- 19. Logische Indizierung einer Matrix
- 20. Return zwei dimentional Array aller paarweise Produkte
- 21. Abrufen aller Elemente aus einer SharePoint-Feldauswahlspalte
- 22. Sortieren aller Elemente in einem XDocument
- 23. WP7 - VisualTreeHelper zum Durchlaufen aller ListBox-Elemente
- 24. Make Array aller GET-Variablen
- 25. Makefile voranstellen und alle Elemente im Array anfügen
- 26. Multiplikation aller Elemente eines Vektors in R
- 27. Javascript Auslöser für Belastung aller Elemente
- 28. Get ID aller Elemente in Datentabellen Tabelle
- 29. Waterline: Abfrage Array mit UND für Elemente
- 30. Java: Array Elemente null und int-Werte
Das ist eine absolut gültige Operation ist zu tun, und wenn PHP Es ist nicht eingebaut, Sie können es einfach mit 'array_reduce' (oder' fold' machen, da diese höherwertige Funktion häufiger aufgerufen wird). – delnan
@delnan: Dies erfordert eine Iteration über das gesamte Array, unabhängig davon, ob es sogar ein 'true' enthält, geschweige denn, ob vor dem Ende des Arrays ein' false' auftritt. –
@Will: Ja, Schande über mich: X – delnan