PHP array_filter函数的一点应用 获取二维数组中指的键值的结果
2014-03-09 22:11
253 查看
array array_filter ( array [, callback callback] )
array_filter() 依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则 array 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。
三个方法
1、第一个方法是通过array_filter 的特性,然后匹配$condition 这个数组中的键值对,将$condition 中的所有兼职通过&&筛选返回针对源数组筛选之后的结果。
2、第二个方法是将$conditon 中的键值对通过按位与的方式确定筛选结果
3、第三个方法是将$condtion 中的键值对通过|| 筛选确定筛选结果。
分享一点小小的技巧,省却简单的筛选下每次都要写foreach的烦恼,当然我更多应用的还是第一个方法.
array_filter() 依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则 array 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。
/** * @name linq and 实现 * @param array $socure * @param array $condition key: $socure中的key value: 和$socure中相对应的值相比较 全部为真才为真 * @return multitype:|boolean */ public static function WhereAnd($socure, array $condition) { return array_filter($socure, function ($value) use($condition) { $re = true; foreach ($condition as $k => $v) { if (!isset($value[$k]) || $value[$k] != $v) { $re = false; break; } } return $re; }); } public static function WhereBitwise($socure, array $condition) { return array_filter($socure, function ($value) use($condition) { $re = true; foreach ($condition as $k => $v) { if (($value[$k] & $v) > 0) { $re = false; break; } } return $re; }); } /** * @name linq or 实现 * @param array $socure * @param array $condition key: $socure中的key value: 和$socure中相对应的值相比较 存在为真就为真 * @return multitype:|boolean */ public static function WhereOr($socure, array $condition) { return array_filter($socure, function ($value) use($condition) { $re = false; foreach ($condition as $k => $v) { if ($value[$k] == $v) { $re = true; break; } } return $re; }); }
三个方法
1、第一个方法是通过array_filter 的特性,然后匹配$condition 这个数组中的键值对,将$condition 中的所有兼职通过&&筛选返回针对源数组筛选之后的结果。
2、第二个方法是将$conditon 中的键值对通过按位与的方式确定筛选结果
3、第三个方法是将$condtion 中的键值对通过|| 筛选确定筛选结果。
分享一点小小的技巧,省却简单的筛选下每次都要写foreach的烦恼,当然我更多应用的还是第一个方法.
相关文章推荐
- 线程池使用FutureTask时候需要注意的一点事, 获取线程执行结果
- Python rPyc 模块应用:在远端上执行命令,并且获取查询结果
- 如何模拟苹果appstore的搜索结果,如何获取应用的描述信息
- 二维数组 获取某键值集合
- php获取二维数组中key键值的例子
- Selenium2学习-036-WebUI自动化实战实例-034-JavaScript 在 Selenium 自动化中的应用实例之六(获取 JS 执行结果返回值)
- 获取某个应用运行数目并将终端结果赋值给Qt中的变量
- 反射应用-编译字符串获取计算结果
- 应用mysql_fetch_array()函数从数组结果集中获取信息
- 应用mysql_fetch_object()函数从数组结果集中获取信息
- 应用mysql_fetch_row()函数从数组结果集中获取信息
- 应用mysql_num_rows()函数获取查询结果集中的记录数
- Android实现获取系统应用列表
- C++ MFC 使用低级键盘钩子 获取键值 (WH_KEYBOARD_LL)
- 【Win 10 应用开发】获取本机的IP地址
- Android GPS应用:动态获取位置信息
- [原创]Python 运行 shell 获取输出结果
- 获取键盘键值
- android 应用如何获取系统权限 以及root系统方法
- input event获取按键键值