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 相关文章推荐
基于Zend的Config机制的应用分析
May 02 PHP
解析php中heredoc的使用方法
Jun 17 PHP
实现PHP多线程异步请求的3种方法
Jan 17 PHP
php生成excel列名超过26列大于Z时的解决方法
Dec 29 PHP
护卫神php套件 php版本升级方法(php5.5.24)
May 10 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
Oct 14 PHP
关于PHP定时发送服务的解决办法
Apr 23 PHP
简单谈谈PHP面向对象之标识对象
Jun 27 PHP
PHP实现的堆排序算法详解
Aug 17 PHP
redis+php实现微博(一)注册与登录功能详解
Sep 23 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
Dec 03 PHP
php屏蔽错误及提示的方法
May 10 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
php5数字型字符串加解密代码
2008/04/24 PHP
php 移除数组重复元素的一点说明
2008/11/27 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
2013/06/13 PHP
PHP curl模拟登录带验证码的网站
2015/11/30 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
2018/08/19 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
2018/08/21 PHP
JavaScript 类似flash效果的立体图片浏览器
2010/02/08 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
改变文件域的样式实现思路同时兼容ie、firefox
2013/10/23 Javascript
JS倒计时代码汇总
2014/11/25 Javascript
javascript实现的固定位置悬浮窗口实例
2015/04/30 Javascript
javascript页面倒计时实例
2015/07/25 Javascript
js实现索引图片切换效果
2015/11/21 Javascript
Javascript中神奇的this
2016/01/20 Javascript
动态JavaScript所造成一些你不知道的危害
2016/09/25 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
Vue实现一个无限加载列表功能
2018/11/13 Javascript
JS选取DOM元素常见操作方法实例分析
2018/12/10 Javascript
python获取标准北京时间的方法
2015/03/24 Python
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
2019/06/27 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
2019/10/28 Python
Python笔记之代理模式
2019/11/20 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
浅谈Python中文件夹和python package包的区别
2020/06/01 Python
sklearn线性逻辑回归和非线性逻辑回归的实现
2020/06/09 Python
外贸实习生自荐信范文
2013/11/24 职场文书
廉政教育心得体会
2014/01/01 职场文书
客服部班长工作责任制
2014/02/25 职场文书
求职信内容一般写什么?
2015/03/20 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
Python3 使用pip安装git并获取Yahoo金融数据的操作
2021/04/08 Python
详解nodejs内置模块
2021/05/06 NodeJs