$new_array = array_filter ($array, call_back_function(),$flag);
| Parameter | DESCRIPTION |
|---|---|
| $array | Required : Input array to be filtered. |
| $call_back_function() | Optional: Values or Keys to be passed for checking. |
| $flag | Optional: 0: ARRAY_FILTER_USE_KEY , use only key for passing to callback function. 1 : ARRAY_FILTER_USE_BOTH : Use key and value both for passing to callback function. |
<?Php
$a= array(1,2,'v','bcd',5,7.3,88,105 );
$b=array_filter($a, 'is_int');
print_r($b);
?>
The output is here
Array ( [0] => 1 [1] => 2 [4] => 5 [6] => 88 [7] => 105 )
In our new array $b all the integers take from old array $a is kept. Note that the associated keys of the elements are also retained. We used print_r to display our $b array.
We have used is_int a built in PHP function which returns true if the element is an integer. Now let us try to use one user defined function as callback function.
<?Php
function check_length($str){
if(strlen($str) == 3 ){
return 'T';
}
}
$a= array(361,2,'vbc','bcd',5,7.3,88,10);
$b=array_filter($a, 'check_length');
print_r($b);
?>
Output is here
Array ( [0] => 361 [2] => vbc [3] => bcd [5] => 7.3 )
function check_size($value){
if(strlen($value) == 3 ){
return 'T';
}
}
function check_size_both($value,$key){
if(strlen($value) == 3 || is_int($key) ){
return 'T';
}
}
$input=array(1 =>'One',2=>'Two',3=>'Three','Four'=>'4th');
echo "-- With ARRAY_FILTER_USE_KEY --<br> ";
$result=array_filter($input,'check_size',0);
while (list ($key, $val) = each ($result)) {
echo "$key -> $val <br>";
}
echo "<br>-- With ARRAY_FILTER_USE_BOTH --<br> ";
$result=array_filter($input,'check_size_both',1);
while (list ($key, $val) = each ($result)) {
echo "$key -> $val <br>";
}
Output
-- With ARRAY_FILTER_USE_KEY --
1 -> One
2 -> Two
Four -> 4th
-- With ARRAY_FILTER_USE_BOTH --
1 -> One
2 -> Two
3 -> Three
Four -> 4th
3 -> Three is included in result ( ARRAY_FILTER_USE_BOTH ) as the key is an integer though the length of the value is not equal to three. Author & Instructor at plus2net
I write and maintain practical tutorials on Python, PHP, SQL, JavaScript, HTML, jQuery, and web development at plus2net. The tutorials focus on clear explanations, working examples, and code that readers can test and adapt while learning.