当前位置: 首页> 函数类别大全> 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>
同类函数
  • 返回数组中当前的键/值对并将数组指针向前移动一步-本函数已自 PHP 7.2.0 起废弃。强烈建议不要使用本函数。 each

    each

    返回数组中当前的键/值对并将数组指针向前
  • 对数组进行逆向排序并保持索引关系 arsort

    arsort

    对数组进行逆向排序并保持索引关系
  • 在数组开头插入一个或多个单元 array_unshift

    array_unshift

    在数组开头插入一个或多个单元
  • 带索引检查计算数组的交集,用单独的回调函数比较数据和索引 array_uintersect_uassoc

    array_uintersect_uassoc

    带索引检查计算数组的交集,用单独的回调函
  • 获取指定数组的第一个键的名字 array_key_first

    array_key_first

    获取指定数组的第一个键的名字
  • 将数组的内部指针指向第一个单元 reset

    reset

    将数组的内部指针指向第一个单元
  • 返回数组中部分的或所有的键名 array_keys

    array_keys

    返回数组中部分的或所有的键名
  • 用回调函数比较数据来计算数组的差集 array_udiff

    array_udiff

    用回调函数比较数据来计算数组的差集