插件窝 干货文章 php中的array_filter()函数的使用

php中的array_filter()函数的使用

array 数组 函数 filter 823    来源:    2024-10-29

函数概述

array_filter()函数是一个用于过滤数组中元素的函数,它会返回一个新的数组,新数组中的元素是由原数组中的元素所依照某个条件筛选而来。根据官方文档的定义,它的语法如下:

array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )

其中,$array表示待过滤的原数组,$callback是可选的回调函数参数,$flag是可选的掩码参数。

php中的array_filter()函数用于筛选数组中的元素,并返回一个新的数组,新数组的元素是所有返回值为true的原数组元素。array_filter()函数的使用语法如下:

array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) : array

其中,参数说明如下:

  • $array :必选参数,表示要筛选的原数组。
  • $callback :可选参数,表示筛选的回调函数,可以是内置函数或自定义函数,用于对数组元素进行筛选判断。如果省略该参数,则返回数组中所有值为true的元素。
  • $flag :可选参数,表示回调函数的行为标志,常用的取值有 ARRAY_FILTER_USE_KEY (回调函数接受元素的键名作为唯一参数)和 ARRAY_FILTER_USE_BOTH (回调函数同时接受元素的键名和键值作为参数)。默认值为0,即只有元素的值作为参数。

示例如下:

$array = [1, 2, 3, 4, 5];
$newArray = array_filter($array, function($value){
return $value % 2 == 0;
});
print_r($newArray);

上述代码将输出:

Array
(
[1] => 2
[3] => 4
)

其中,通过回调函数判断数组元素是否为偶数,筛选出所有的偶数元素,返回新数组。

PHP函数array_filter

array_filter迭代数组中每个元素到一个自定义函数,保留返回true的值到一个新的结果数组中。

/**
 * Iterates over each value in the <b>array</b>
 * passing them to the <b>callback</b> function.
 * If the <b>callback</b> function returns true, the
 * current value from <b>array</b> is returned into
 * the result array. Array keys are preserved.
 * @link https://php.net/manual/en/function.array-filter.php
 * @param array $input <p>
 * The array to iterate over
 * </p>
 * @param callback $callback [optional] <p>
 * The callback function to use
 * </p>
 * <p>
 * If no callback is supplied, all entries of
 * input equal to false (see
 * converting to
 * boolean) will be removed.
 * </p>
 * @param int $flag [optional] <p>
 * Flag determining what arguments are sent to <i>callback</i>:
 * </p><ul>
 * <li>
 * <b>ARRAY_FILTER_USE_KEY</b> - pass key as the only argument
 * to <i>callback</i> instead of the value</span>
 * </li>
 * <li>
 * <b>ARRAY_FILTER_USE_BOTH</b> - pass both value and key as
 * arguments to <i>callback</i> instead of the value</span>
 * </li>
 * </ul>
 * @return array the filtered array.
 * @meta
 */
function array_filter(array $input, $callback = null, $flag = 0) { }

 示例一:默认不定义回调函数

$array = [
    3, false, 0, '',null
];
$result = array_filter($array);
var_dump($result);
//结果
//array(1) {
//    [0] =>
//  int(3)
//}

示例二:定义函数,返回等于0的元素

$array = [
    3, false, 0, '',null
];
$result = array_filter($array, function ($v){
    return $v === 0;
});
var_dump($result);
//结果
//array(1) {
//    [2] =>
//  int(0)
//}

示例三:传递第三个参数,返回键等于1的元素

$array = [
    3, false, 0, '',null
];
$result = array_filter($array, function ($k){
    return $k === 1;
}, ARRAY_FILTER_USE_KEY);
var_dump($result);
//结果
//array(1) {
//    [1] =>
//  bool(false)
//}

示例四:传递第三个参数,返回键等于1且值等于false的元素

$array = [
    3, false, 0, '',null
];
$result = array_filter($array, function ($v, $k){
    return $k === 1 && $v === false;
}, ARRAY_FILTER_USE_BOTH);
var_dump($result);
//结果
//array(1) {
//    [1] =>
//  bool(false)
//}

到此这篇关于php中的array_filter()函数的文章就介绍到这了,更多相关php array_filter()函数内容请搜索插件窝以前的文章或继续浏览下面的相关文章希望大家以后多多支持插件窝!