Funktionen array_filter
Funktionen array_filter filtrerar en array
med en given funktion. Elementen i arrayen
skickas sekventiellt till funktionen som parameter
och, om funktionen returnerar
true för det elementet, kommer elementet att
finnas kvar i arrayen, medan om den returnerar
false så tas den bort. Endast de element
för vilka funktionen returnerar true
kommer att finnas kvar i arrayen.
Om den ursprungliga arrayen är associativ, bevaras dess nycklar.
Syntax
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
Exempel
Låt oss endast behålla de positiva elementen i arrayen:
<?php
function func($num)
{
if ($num >= 0) {
return true;
} else {
return false;
}
}
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, 'func');
var_dump($res);
?>
Resultatet av att köra koden:
[1, 2, 3]
Exempel
Låt oss förenkla villkoret:
<?php
function func($num)
{
return $num >= 0;
}
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, 'func');
var_dump($res);
?>
Resultatet av att köra koden:
[1, 2, 3]
Exempel
Låt oss ändra till en anonym funktion:
<?php
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, function($num) {
return $num >= 0;
});
var_dump($res);
?>
Resultatet av att köra koden:
[1, 2, 3]
Exempel
Låt oss ändra till en arrow-funktion:
<?php
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, fn($num) => $num >= 0);
var_dump($res);
?>
Resultatet av att köra koden:
[1, 2, 3]
Se även
-
funktionen
array_map,
som applicerar en funktion på elementen i en array -
funktionen
array_walk,
som anropar en funktion för elementen i en array -
funktionen
array_walk_recursive,
som rekursivt anropar en funktion för elementen i en array -
funktionen
array_reduce,
som reducerar en array