【函数分享】每日PHP函数分享(2021-3-1)
梦中程序员 人气:0array_filter — 使用回调函数过滤数组的元素
说明
array_filter ( array $array , callable|null $callback = null , int $mode = 0 ) : array
遍历 array
数组中的每个值,并将每个值传递给 callback
回调函数。如果 callback
回调函数返回 true
,则将 array
数组中的当前值返回到结果 array 数组中。
返回结果 array 数组的键名(下标)会维持不变,如果 array
参数是索引数组,返回的结果 array 数组键名(下标)可能会不连续。可以使用 array_values() 函数对数组重新索引。
参数
array:要遍历的数组
callback:使用的回调函数,如果没有提供 callback
回调函数,将删除数组中 array
的所有“空”元素。有关 PHP 如何判定“空”元素,请参阅 empty() 。
mode:决定哪些参数发送到 callback
回调的标志:
-
ARRAY_FILTER_USE_KEY
- 将键名作为callback
回调的唯一参数,而不是值 -
ARRAY_FILTER_USE_BOTH
- 将值和键都作为参数传递给callback
回调,而不是仅传递值
默认值为 0
,只传递值作为 callback
回调的唯一参数。
返回值
返回过滤后的数组。
范例
<?php function odd($var) { // 返回输入整数是否为奇数(单数) return $var & 1; } function even($var) { // 返回输入整数是否为偶数 return !($var & 1); } $array1 = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5]; $array2 = [6, 7, 8, 9, 10, 11, 12]; echo "Odd :\n"; print_r(array_filter($array1, "odd")); echo "Even:\n"; print_r(array_filter($array2, "even")); ?> 输出 Odd : Array ( [a] => 1 [c] => 3 [e] => 5 ) Even: Array ( [0] => 6 [2] => 8 [4] => 10 [6] => 12 )
加载全部内容