array_filter

(PHP 4 >= 4.0.6, PHP 5)

array_filter --  Filtrerer elementer i et array ved brug af en callback funktion

Beskrivelse

array array_filter ( array input [, callback callback] )

array_filter() kontrollere alle værdier i input arrayet ved at kører dem igennem callback funktionen. Hvis callback funktionen returnere korrekt, vil den aktuelle værdi fra input arrayet, blive indsat i det endelige array. Nøglerne vil blive overført direkte.

Eksempel 1. array_filter() eksempel

<?php
function ulige($var)
{
    return(
$var % 2 == 1);
}

function
lige($var)
{
    return(
$var % 2 == 0);
}

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);

echo
"Ulige :\n";
print_r(array_filter($array1, "ulige"));
echo
"Lige:\n";
print_r(array_filter($array2, "lige"));
?>

Ovenstående eksempel vil udskrive:

Ulige :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Lige:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

Man må ikke ændre direkte i arrayet igennem callback funktionen. F.eks. Tilføje/slette et element, nulstille et array som array_filter() er tilknyttet til. Hvis arrayet bliver ændret vil resultatet af denne funktion bliver udefineret.

Hvis callback funktionen ikke er sat vil array_filter() fjerne alle elementer af input arrayet, som betyder det samme som FALSE. Læs mere om konvertering til boleansk værdi.

Eksempel 2. array_filter() uden callback

<?php

$entry
= array(
             
0 => 'foo',
             
1 => false,
             
2 => -1,
             
3 => null,
             
4 => ''
          
);

print_r(array_filter($entry));
?>

Ovenstående eksempel vil udskrive:

Array
(
    [0] => foo
    [2] => -1
)

Se også array_map(), array_reduce() og array_walk().