Funkcija array_filter
Funkcija array_filter filtravo masyvą
naudodama nurodytą funkciją. Į funkcijos parametrą
paieškas bus perduodami masyvo elementai
ir, jei šiam elementui funkcija grąžins
true - elementas liks masyve, o jei
false - bus pašalintas. Masyve liks tik
tie elementai, kuriems funkcija
grąžins true.
Jei pradinis masyvas yra asociatyvus, tai jo raktai išsaugomi.
Sintaksė
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
Pavyzdys
Palikime masyve tik teigiamus 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);
?>
Kodo vykdymo rezultatas:
[1, 2, 3]
Pavyzdys
Sutrumpinkime sąlygą:
<?php
function func($num)
{
return $num >= 0;
}
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, 'func');
var_dump($res);
?>
Kodo vykdymo rezultatas:
[1, 2, 3]
Pavyzdys
Pakeiskime į anoniminę funkciją:
<?php
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, function($num) {
return $num >= 0;
});
var_dump($res);
?>
Kodo vykdymo rezultatas:
[1, 2, 3]
Pavyzdys
Pakeiskime į rodyklinę funkciją:
<?php
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, fn($num) => $num >= 0);
var_dump($res);
?>
Kodo vykdymo rezultatas:
[1, 2, 3]
Taip pat žiūrėkite
-
funkciją
array_map,
kuri taiko funkciją masyvo elementams -
funkciją
array_walk,
kuri iškviečia funkciją masyvo elementams -
funkciją
array_walk_recursive,
kuri rekursyviai iškviečia funkciją masyvo elementams -
funkciją
array_reduce,
kuri suskleidžia masyvą