php回调函数处理数组操作示例


Posted in PHP onApril 13, 2020

本文实例讲述了php回调函数处理数组操作。分享给大家供大家参考,具体如下:

array_reduce— 用回调函数迭代地将数组简化为单一的值

mixed array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] )

  • callback【mixed callback ( mixed $carry , mixed $item ) carry--携带上次迭代里的值; 如果本次迭代是第一次,那么这个值是 initial。item --携带了本次迭代的值。】
  • initial【如果指定了可选参数 initial,该参数将在处理开始前使用,或者当处理结束,数组为空时的最后一个结果。】

例:

$res = [
 '0' => [
 'a' => 'you',
 'b' => 'me'
 ],
 '1' => [
 'c' => 'li',
 'd' => 'op'
 ]
];
$res = array_reduce($res,function($result,$value) {
 return array_merge($result,array_values($value));
},array());
var_dump($res);

输出:

array(4) {
  [0]=>
  string(3) "you"
  [1]=>
  string(2) "me"
  [2]=>
  string(2) "li"
  [3]=>
  string(2) "op"
}

array_filter — 用回调函数过滤数组中的单元

array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )    返回过滤后的数组。

  • array--要循环的数组
  • callback--使用的回调函数,如果没有提供 callback 函数, 将删除 array 中所有等值为 FALSE 的条目。
  • flag--决定callback接收的参数形式:
    • ARRAY_FILTER_USE_KEY - callback接受键名作为的唯一参数
    • ARRAY_FILTER_USE_BOTH - callback同时接受键名和键值

例:

function odd($var)
{
  // returns whether the input integer is odd
  return($var & 1);
}
 
function even($var)
{
  // returns whether the input integer is even
  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 "Odd :\n";
print_r(array_filter($array1, "odd"));//1,3,5
echo "Even:\n";
print_r(array_filter($array2, "even"));//2,4,6

array_map — 为数组的每个元素应用回调函数

array_map ( callable $callback , array $array1 [, array $... ] )

参数

  • callback--回调函数,应用到每个数组里的每个元素。
  • array1--数组,遍历运行 callback 函数。

...

数组列表,每个都遍历运行 callback 函数。

返回值----返回数组,包含 callback 函数处理之后 array1 的所有元素。

例:

function cube($n)
{
  return($n * $n * $n);
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);

输出:

Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
删除无限级目录与文件代码共享
Jul 12 PHP
用PHP和ACCESS写聊天室(一)
Oct 09 PHP
说明的比较细的php 正则学习实例
Jul 30 PHP
phplock(php进程锁) v1.0 beta1
Nov 24 PHP
PHP程序级守护进程的实现与优化的使用概述
May 02 PHP
php.ini 配置文件的深入解析
Jun 17 PHP
PHP 函数call_user_func和call_user_func_array用法详解
Mar 02 PHP
简单介绍PHP非阻塞模式
Mar 03 PHP
Yii2简单实现给表单添加验证码的方法
Jul 18 PHP
PHP中empty,isset,is_null用法和区别
Feb 19 PHP
PHP微信企业号开发之回调模式开启与用法示例
Nov 25 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
Jul 20 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
Apr 13 #PHP
laravel使用数据库测试注意事项
Apr 10 #PHP
为你的 Laravel 验证器加上多验证场景的实现
Apr 07 #PHP
再谈Yii Framework框架中的事件event原理与应用
Apr 07 #PHP
Yii框架组件的事件机制原理与用法分析
Apr 07 #PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
Apr 07 #PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
Apr 07 #PHP
You might like
不错的一篇面向对象的PHP开发模式(简写版)
2007/03/15 PHP
php提高网站效率的技巧
2015/09/29 PHP
PHP MYSQL实现登陆和模糊查询两大功能
2016/02/05 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
JavaScript自动设置IFrame高度的小例子
2013/06/08 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
如何获取select下拉框的值(option没有及有value属性)
2013/11/08 Javascript
jqGrid随窗口大小变化自适应大小的示例代码
2013/12/28 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
jQuery中的通配符选择器使用总结
2016/05/30 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
手把手教你把nodejs部署到linux上跑出hello world
2017/06/19 NodeJs
JavaScript事件委托原理与用法实例分析
2018/06/07 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
JS数组的常用10种方法详解
2020/05/08 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
Python Tkinter简单布局实例教程
2014/09/03 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
2016/05/28 Python
基于树莓派的语音对话机器人
2019/06/17 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
Python列表元素常见操作简单示例
2019/10/25 Python
python os.path.isfile 的使用误区详解
2019/11/29 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
2020/04/27 Python
python 双循环遍历list 变量判断代码
2020/05/04 Python
大学团支书的自我评价分享
2013/12/14 职场文书
全国道德模范事迹
2014/02/01 职场文书
索桥的故事教学反思
2014/02/06 职场文书
领导干部考察材料
2014/02/08 职场文书
党员大会主持词
2014/04/02 职场文书
赔偿协议书范本
2014/04/15 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
2014教师研修学习体会
2014/07/08 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
从事会计工作年限证明
2015/06/23 职场文书