Start · Sprachen · PHP · Referenz · array_any

array_any

Funktion

Prüft, ob mindestens ein Element eines Arrays eine Callback-Funktion erfüllt (d. h. ob der Callback für mindestens ein Element <code>true</code> zurückgibt).

seit PHP 8.4.0 Kategorie: array

Signatur

array_any(array $array, callable $callback): bool

Beschreibung

array_any() iteriert über alle Elemente des übergebenen Arrays und ruft für jedes Element die Callback-Funktion auf. Sobald der Callback für ein Element einen Wert zurückgibt, der als true gewertet wird (truthy), stoppt die Iteration und die Funktion gibt true zurück. Liefert der Callback für kein einziges Element einen truthy-Wert, gibt array_any() false zurück.

Die Funktion ist besonders nützlich, wenn man prüfen möchte, ob wenigstens ein Element einer Liste eine Bedingung erfüllt – z. B. ob ein Benutzer mindestens eine bestimmte Rolle besitzt oder ob in einer Produktliste mindestens ein Artikel vergriffen ist. Sie ersetzt typische foreach-Schleifen mit vorzeitigem break durch einen klar lesbaren Einzeiler.

Der Callback erhält als erstes Argument den Wert des aktuellen Elements. Im Unterschied zu array_filter() wird das Array nicht gefiltert, sondern lediglich ein boolesches Ergebnis geliefert. Die Funktion ist das Gegenstück zu array_all(), das prüft, ob alle Elemente die Bedingung erfüllen.

Bei einem leeren Array gibt array_any() stets false zurück, da kein Element die Bedingung erfüllen kann.

Parameter

Name Typ Default Beschreibung
$array Pflicht array Das zu prüfende Array. Sowohl numerische als auch assoziative Arrays werden unterstützt.
$callback Pflicht callable Eine Callback-Funktion, die für jedes Element aufgerufen wird. Sie erhält den Wert des Elements als erstes Argument und soll einen Wahrheitswert (true/false) zurückgeben.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn der Callback für mindestens ein Element des Arrays einen truthy-Wert liefert. Gibt false zurück, wenn kein Element die Bedingung erfüllt oder das Array leer ist.

Beispiele

Prüfen, ob mindestens eine Zahl negativ ist

<?php
$zahlen = [4, 7, -1, 3, 9];

$hatNegative = array_any($zahlen, fn(int $n) => $n < 0);

echo $hatNegative ? 'Ja, es gibt negative Zahlen.' : 'Keine negativen Zahlen.';
Ja, es gibt negative Zahlen.

Prüfen, ob ein Benutzer mindestens eine Admin-Rolle besitzt

<?php
$rollen = ['editor', 'moderator', 'admin'];

$istAdmin = array_any($rollen, fn(string $rolle) => $rolle === 'admin');

if ($istAdmin) {
    echo 'Zugriff gewährt: Benutzer ist Administrator.';
} else {
    echo 'Zugriff verweigert: Keine Admin-Rolle gefunden.';
}
Zugriff gewährt: Benutzer ist Administrator.

Leeres Array ergibt immer false

<?php
$leer = [];

$ergebnis = array_any($leer, fn($v) => $v > 0);

var_dump($ergebnis);
bool(false)

// Wichtig · Fallstricke

Neu in PHP 8.4.0: array_any() wurde zusammen mit array_all() eingeführt. In älteren PHP-Versionen (vor 8.4) muss diese Logik manuell mit einer foreach-Schleife oder über eine Kombination aus array_filter() und count() nachgebildet werden.

Der Callback erhält nur den Wert des Elements, nicht den Schlüssel. Falls der Schlüssel im Callback benötigt wird, muss eine klassische Schleife verwendet werden.

Die Funktion bricht die Iteration beim ersten positiven Treffer ab (short-circuit evaluation), was bei großen Arrays effizient ist.