array_filter()函数是一个用于过滤数组中元素的函数它会返回一个新的数组新数组中的元素是由原数组中的元素所依照某个条件筛选而来。根据官方文档的定义它的语法如下array array_filter ( array $array [, callable $callback [, int $flag 0 ]] )其中$array表示待过滤的原数组$callback是可选的回调函数参数$flag是可选的掩码参数。php中的array_filter()函数用于筛选数组中的元素并返回一个新的数组新数组的元素是所有返回值为true的原数组元素。array_filter()函数的使用语法如下1array_filter(array$array[, callable$callback[, int$flag 0 ]] ) :array其中参数说明如下$array必选参数表示要筛选的原数组。$callback可选参数表示筛选的回调函数可以是内置函数或自定义函数用于对数组元素进行筛选判断。如果省略该参数则返回数组中所有值为true的元素。$flag可选参数表示回调函数的行为标志常用的取值有ARRAY_FILTER_USE_KEY回调函数接受元素的键名作为唯一参数和ARRAY_FILTER_USE_BOTH回调函数同时接受元素的键名和键值作为参数。默认值为0即只有元素的值作为参数。示例如下12345$array [1, 2, 3, 4, 5];$newArrayarray_filter($array,function($value){return$value% 2 0;});print_r($newArray);上述代码将输出Array([1] 2[3] 4)其中通过回调函数判断数组元素是否为偶数筛选出所有的偶数元素返回新数组。PHP函数array_filterarray_filter迭代数组中每个元素到一个自定义函数保留返回true的值到一个新的结果数组中。1234567891011121314151617181920212223242526272829303132333435/*** Iterates over each value in the barray/b* passing them to the bcallback/b function.* If the bcallback/b function returns true, the* current value from barray/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 icallback/i:* /pul* li* bARRAY_FILTER_USE_KEY/b - pass key as the only argument* to icallback/i instead of the value/span* /li* li* bARRAY_FILTER_USE_BOTH/b - pass both value and key as* arguments to icallback/i instead of the value/span* /li* /ul* return array the filtered array.* meta*/functionarray_filter(array$input,$callback null,$flag 0) { }示例一默认不定义回调函数12345678910$array [3, false, 0,,null];$resultarray_filter($array);var_dump($result);//结果//array(1) {// [0] // int(3)//}示例二定义函数返回等于0的元素123456789101112$array [3, false, 0,,null];$resultarray_filter($array,function($v){return$v 0;});var_dump($result);//结果//array(1) {// [2] // int(0)//}示例三传递第三个参数返回键等于1的元素123456789101112$array [3, false, 0,,null];$resultarray_filter($array,function($k){return$k 1;}, ARRAY_FILTER_USE_KEY);var_dump($result);//结果//array(1) {// [1] // bool(false)//}示例四传递第三个参数返回键等于1且值等于false的元素123456789101112$array [3, false, 0,,null];$resultarray_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()函数的文章就介绍到这了