array_filter
PHP -> Funkcie -> Array funkcie -> array_filter
Syntax
array array_filter ( array vstup [, callback callback] )
Popis
Funkcia jazyka PHP filtruje prvky poľa pomocou volania z funkcie.
array_filter() opakuje každú hodnotu v poli vstup ich prenesením do funkcie callback. Ak funkcia callback vráti true, aktuálna hodnota sa z poľa vstup vráti do výsledného poľa. kľúče poľa sa zachovajú.
Príklady
<?php
function odd($var)
{
return($var % 2 == 1);
}
function even($var)
{
return($var % 2 == 0);
}
$pole1 = array ("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$pole2 = array (6, 7, 8, 9, 10, 11, 12);
echo "Neparne :\n";
print_r(array_filter($pole1, "odd"));
echo "Parne:\n";
print_r(array_filter($pole2, "even"));
?>
function odd($var)
{
return($var % 2 == 1);
}
function even($var)
{
return($var % 2 == 0);
}
$pole1 = array ("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$pole2 = array (6, 7, 8, 9, 10, 11, 12);
echo "Neparne :\n";
print_r(array_filter($pole1, "odd"));
echo "Parne:\n";
print_r(array_filter($pole2, "even"));
?>
Výpis vyššie uvedeného programu bude:
Neparne :
Array
(
[a] => 1
[c] => 3
[e] => 5
)
Parne:
Array
(
[0] => 6
[2] => 8
[4] => 10
[6] => 12
)
Array
(
[a] => 1
[c] => 3
[e] => 5
)
Parne:
Array
(
[0] => 6
[2] => 8
[4] => 10
[6] => 12
)
Užívatelia nemôžu zmeniť samotné pole funkcie volania, t.j. Pridať/odstrániť element, vymazať pole, na ktoré sa použil array_filter(). Ak sa zmení pole, správanie tejto funkcie nie je definované.
Ak nie je zadaná funkcia callback, array_filter() odstráni všetky položky v vstup, ktoré sú rovné FALSE.
array_filter() bez callback:
<?php
$polozka = array(
0 => 'foo',
1 => false,
2 => -1,
3 => null,
4 => ''
);
print_r(array_filter($polozka));
?>
$polozka = array(
0 => 'foo',
1 => false,
2 => -1,
3 => null,
4 => ''
);
print_r(array_filter($polozka));
?>
Výstupom bude:
Array
(
[0] => foo
[2] => -1
)
(
[0] => foo
[2] => -1
)
Pozri aj
array_map, array_reduce, array_walk