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 == 1);
}

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

$array1 = array("a"=>1"b"=>2"c"=>3"d"=>4"e"=>5);
$array2 = array(6789101112);

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(
             
=> 'foo',
             
=> false,
             
=> -1,
             
=> null,
             
=> ''
          
);

print_r(array_filter($entry));
?>

Ovenstående eksempel vil udskrive:

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

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