Signatur
Beschreibung
array_all() iteriert über alle Elemente des übergebenen Arrays und ruft für jedes Element die angegebene Callback-Funktion auf. Gibt der Callback für jedes Element einen truthy Wert zurück, liefert array_all() true zurück. Sobald ein Element die Bedingung nicht erfüllt, wird die Iteration sofort abgebrochen und false zurückgegeben (Short-Circuit-Auswertung).
Die Funktion ist besonders nützlich, wenn sichergestellt werden soll, dass eine gesamte Sammlung von Werten einer bestimmten Regel entspricht – zum Beispiel, ob alle Benutzer volljährig sind, alle Felder eines Formulars ausgefüllt wurden oder alle Einträge einen bestimmten Status besitzen.
Der Callback erhält als ersten Parameter den Wert (value) des jeweiligen Elements. Das Verhalten entspricht konzeptionell dem logischen AND über alle Rückgabewerte des Callbacks. Ein leeres Array führt stets zu true (Vakuumwahrheit).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $array Pflicht | array | Das zu prüfende Array. Kann ein beliebiges indiziertes oder assoziatives Array sein. | |
| $callback Pflicht | callable | Eine Callback-Funktion, die für jedes Element aufgerufen wird. Sie erhält den Wert des Elements als Argument und soll einen booleschen Wert (oder einen truthy/falsy Wert) zurückgeben. |
Rückgabewert
true zurück, wenn der Callback für alle Elemente einen truthy Wert liefert (oder das Array leer ist), andernfalls false.Beispiele
Prüfen, ob alle Zahlen positiv sind
<?php
$zahlen = [3, 7, 12, 5, 9];
$allePositiv = array_all($zahlen, fn(int $n): bool => $n > 0);
echo $allePositiv ? 'Alle Zahlen sind positiv.' : 'Mindestens eine Zahl ist nicht positiv.';
// Ausgabe: Alle Zahlen sind positiv.
Validierung: Alle Pflichtfelder ausgefüllt?
<?php
$formularFelder = [
'vorname' => 'Anna',
'nachname' => 'Müller',
'email' => 'anna@example.com',
'betreff' => '',
];
$alleAusgefuellt = array_all($formularFelder, fn(string $wert): bool => trim($wert) !== '');
if (!$alleAusgefuellt) {
echo 'Bitte alle Pflichtfelder ausfüllen.';
} else {
echo 'Formular vollständig.';
}
// Ausgabe: Bitte alle Pflichtfelder ausfüllen.
Leeres Array ergibt immer true (Vakuumwahrheit)
<?php
$leeres = [];
$ergebnis = array_all($leeres, fn($wert): bool => $wert > 100);
var_dump($ergebnis);
// Ausgabe: bool(true)
// Wichtig · Fallstricke
Neu in PHP 8.4: array_all() wurde zusammen mit array_any() in PHP 8.4.0 eingeführt. In älteren PHP-Versionen kann das Verhalten manuell mit einer Schleife oder über count(array_filter($array, $callback)) === count($array) nachgebaut werden, wobei letzteres weniger effizient ist, da immer das gesamte Array durchlaufen wird.
Zu beachten: Der Callback erhält nur den Wert, nicht den Schlüssel des Elements. Wer den Schlüssel im Callback benötigt, muss auf array_filter() mit ARRAY_FILTER_USE_BOTH oder eine manuelle Schleife ausweichen.
Da array_all() Short-Circuit-Auswertung verwendet, sollten aufwändige Prüfungen am Ende des Arrays platziert oder Arrays entsprechend vorsortiert werden, um die Performance zu maximieren.