Forum und email

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.

Example#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.

Example#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().