当前位置: 首页> 函数类别大全> array_filter

array_filter

用回调函数过滤数组中的单元
名称:array_filter
分类:数组
所属语言:php
一句话介绍:用回调函数过滤数组中的元素。

array_filter 函数

<h2>适用 PHP 版本</h2>
<p>PHP 4.0.0 及以上版本</p>

<h2>函数说明</h2>
<p>array_filter() 函数用于过滤数组中的元素。它使用回调函数对数组的每个元素进行处理,回调函数返回布尔值,根据返回值过滤元素。若回调函数返回 true,则该元素会被保留,否则将被移除。</p>

<h2>函数语法</h2>
<pre>array_filter(array $array, ?callable $callback = null, int $mode = 0): array

参数

  • array (必需): 需要过滤的输入数组。
  • callback (可选): 回调函数,用于处理数组中的每个元素。若未提供该参数,则所有值不为 false 的元素会被保留。
  • mode (可选): 该参数指定回调函数的参数。0 (默认) 表示使用数组值作为回调函数的参数,1 表示使用数组键作为回调函数的参数。

返回值

返回过滤后的数组。若没有符合条件的元素,返回空数组。

示例


// 示例 1: 过滤掉数组中的空值
$array = [0, 1, 2, null, false, '', 3, 'hello'];
$result = array_filter($array);
print_r($result);

// 输出:
// Array
// (
// [1] => 1
// [2] => 2
// [6] => 3
// [7] => hello
// )

// 示例 2: 使用自定义回调函数进行过滤
$array = [1, 2, 3, 4, 5];
$result = array_filter($array, function($value) {
return $value % 2 == 0; // 仅保留偶数
});
print_r($result);

// 输出:
// Array
// (
// [1] => 2
// [3] => 4
// )

<h2>示例代码的说明</h2>
<p>在第一个示例中,使用 array_filter 函数来过滤掉所有 "false" 值(如 0、null、false 和空字符串)。这个示例展示了如何仅保留所有有效的数组值。</p>

<p>在第二个示例中,使用了一个自定义回调函数,来过滤掉所有不是偶数的元素。这个示例演示了如何利用回调函数来对数组元素进行更复杂的筛选。</p>
同类函数
  • 带索引检查计算数组的交集,用单独的回调函数比较数据和索引 array_uintersect_uassoc

    array_uintersect_uassoc

    带索引检查计算数组的交集,用单独的回调函
  • 用“自然排序”算法对数组进行不区分大小写字母的排序 natcasesort

    natcasesort

    用“自然排序”算法对数组进行不区分大小写
  • 从数组中随机取出一个或多个单元 array_rand

    array_rand

    从数组中随机取出一个或多个单元
  • 将一个或多个单元压入数组的末尾(入栈) array_push

    array_push

    将一个或多个单元压入数组的末尾(入栈)
  • 计算数组中的单元数目,或对象中的属性个数 count

    count

    计算数组中的单元数目,或对象中的属性个数
  • 使用键名比较计算数组的交集 array_intersect_key

    array_intersect_key

    使用键名比较计算数组的交集
  • 对数组按照键名逆向排序 krsort

    krsort

    对数组按照键名逆向排序
  • 用回调函数迭代地将数组简化为单一的值 array_reduce

    array_reduce

    用回调函数迭代地将数组简化为单一的值