当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP array_filter()用法及代码示例


PHP中的内置函数用于通过用户定义的函数(也称为回调函数)来过滤数组的元素。 array_filter()函数遍历数组中的每个值,并将它们传递给用户定义的函数或回调函数。如果回调函数返回true,则将数组的当前值返回到结果数组中,否则不返回。这样可以保留数组的键,即原始数组和输出数组中元素的键相同。

用法:

array array_filter($array, $callback_function, $flag)

参数:该函数具有三个参数,其中一个是必需参数,另外两个是可选参数。


  1. $array(强制性):这是指要对其执行过滤操作的输入数组。
  2. $callback_function(可选):指用户定义的函数。如果未提供函数,则将删除数组中等于FALSE的所有条目。
  3. $flag(可选):引用传递给回调函数的参数。
    • ARRAY_FILTER_USE_KEY-将key作为唯一参数传递给回调函数,而不是数组的值。
    • ARRAY_FILTER_USE_BOTH-将值和键都作为参数而不是值传递给回调。

返回值:该函数返回过滤后的数组。

下面的程序显示了如何使用array_filter()函数从数组中返回或过滤掉偶数元素。

<?php 
  
// PHP function to check for even elements in an array 
function Even($array) 
{ 
    // returns if the input integer is even 
    if($array%2==0) 
       return TRUE; 
    else 
       return FALSE;  
} 
  
$array = array(12, 0, 0, 18, 27, 0, 46); 
print_r(array_filter($array, "Even")); 
  
?>

输出:

Array
(
    [0] => 12
    [1] => 0
    [2] => 0
    [3] => 18
    [5] => 0
    [6] => 46
)

在此示例中,我们将不传递回调函数,而让我们看一下输出。我们将看到未打印0或false元素:

<?php 
  
// PHP function to check for even elements in an array 
function Even($array) 
{ 
    // returns if the input integer is even 
    if($array%2==0) 
       return TRUE; 
    else 
       return FALSE;  
} 
  
$array = array(12, 0, 0, 18, 27, 0, 46); 
print_r(array_filter($array)); 
  
?>

输出:

Array
(
    [0] => 12
    [3] => 18
    [4] => 27
    [6] => 46
)

参考: http://php.net/manual/en/function.array-filter.php



相关用法


注:本文由纯净天空筛选整理自Chinmoy Lenka大神的英文原创作品 PHP | array_filter() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。