PHP中的 array_filter 函数

1 <?php
2 function test_odd($var)
3 {
4   return($var & 1);
5 }
6 
7 $a1=array("a","b",2,3,4);
8 print_r(array_filter($a1,"test_odd"));
9 ?>

会返回

1 Array ( [3] => 3 )

定义和用法

array_filter() 函数用回调函数过滤数组中的值。

该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回结果数组中。数组键名保持不变。

语法

array_filter(array,callbackfunction);
参数描述
array 必需。规定要过滤的数组。
callbackfunction 必需。规定要使用的回调函数。

技术细节

返回值: 返回过滤的数组。
PHP 版本: 4.0.6+

注:回调函数中的  return($var & 1);  表示在1转换成二进制  0001  后,传入的 $var 变量,如果是数字,则在转换成二进制后,其倒数第一位必须是1,如果是字符串则会转换成对应的ASCII码然后再进行操作。

同理,如果把 1 换成 3 , 因为 3 的倒数第一二位都为1,且2的倒数第二位也为1,所以会输出 2 ,3 , 4 这三个数组元素。

如果还没理解可以搜索  PHP位运算符,或者是参考这个网址  http://jingyan.baidu.com/album/6181c3e06f8602152ff1537a.html?picindex=1  我认为它讲得比较清楚

一到十二进制如下所示:

1→0001
2→0010
3→0011
4→0100
5→0101
6→0110
7→0111
8→1000
9→1001
10→1010
原文地址:https://www.cnblogs.com/zsczsc/p/7350805.html