Funkcija array_filter
Funkcija array_filter filtrē masīvu
ar norādīto funkciju. Funkcijas parametrā
secīgi tiks ievadīti masīva elementi
un, ja šim elementam funkcija atgriezīs
true - elements paliks masīvā, bet ja
false - tiks izdzēsts. Masīvā paliks tikai
tie elementi, kuriem funkcija
atgriezīs true.
Ja sākotnējais masīvs ir asociatīvs, tad tā atslēgas tiek saglabātas.
Sintakse
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
Piemērs
Atstāsim masīvā tikai pozitīvos elementus:
<?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);
?>
Koda izpildes rezultāts:
[1, 2, 3]
Piemērs
Saīsināsim nosacījumu:
<?php
function func($num)
{
return $num >= 0;
}
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, 'func');
var_dump($res);
?>
Koda izpildes rezultāts:
[1, 2, 3]
Piemērs
Pārveidosim uz anonīmu funkciju:
<?php
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, function($num) {
return $num >= 0;
});
var_dump($res);
?>
Koda izpildes rezultāts:
[1, 2, 3]
Piemērs
Pārveidosim uz bultu funkciju:
<?php
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, fn($num) => $num >= 0);
var_dump($res);
?>
Koda izpildes rezultāts:
[1, 2, 3]
Skatiet arī
-
funkciju
array_map,
kura piemēro funkciju masīva elementiem -
funkciju
array_walk,
kura izsauc funkciju masīva elementiem -
funkciju
array_walk_recursive,
kura rekursīvi izsauc funkciju masīva elementiem -
funkciju
array_reduce,
kura sakļauj masīvu