PHP array_filter 数组函数
-
定义和用法
array_filter - 用回调函数过滤数组中的单元 -
版本支持
PHP4 PHP5 PHP7 V4.0.6(含)+支持 支持 支持 V5.6.0 添加可选的参数 flag,以及常量 ARRAY_FILTER_USE_KEY 和 ARRAY_FILTER_USE_BOTH。
-
语法
array_filter (array $array [, callable $callback [, int $flag = 0 ]])
依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 true,则 array 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。 -
参数
参数 必需的 描述 array 是 要循环的数组 callback 否 使用的回调函数,如果没有提供 callback 函数, 将删除 array 中所有等值为 FALSE 的条目。 flag 否 决定callback接收的参数形式: - ARRAY_FILTER_USE_KEY - callback接受键名作为的唯一参数
- ARRAY_FILTER_USE_BOTH - callback同时接受键名和键值
-
返回值
返回过滤后的数组。用户不应在回调函数中修改数组本身。例如增加/删除单元或者对 array_filter() 正在作用的数组进行 unset。如果数组改变了,此函数的行为将不可预测。
-
示例
尝试一下<?php function odd($var) { // 返回输入整数是否为奇数 return($var & 1); } function even($var) { // 返回输入整数是否为偶数 return(!($var & 1)); } $array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5); $array2 = array(6, 7, 8, 9, 10, 11, 12); echo "奇数 :<br/>"; print_r(array_filter($array1, "odd")); echo "偶数 :<br/>"; print_r(array_filter($array2, "even")); ?>
-
相关函数
array_map() - 为数组的每个元素应用回调函数array_reduce() - 用回调函数迭代地将数组简化为单一的值array_walk() - 使用用户自定义函数对数组中的每个元素做回调处理