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 相关文章推荐
web方式ftp
Oct 09 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
Jun 20 PHP
学习php过程中的一些注意点的总结
Oct 25 PHP
thinkphp获取栏目和文章当前位置的方法
Oct 29 PHP
Laravel 5框架学习之表单
Apr 08 PHP
PHP实现获取中英文首字母
Jun 19 PHP
PHP+AJAX实现投票功能的方法
Sep 28 PHP
PHP实现的下载远程文件类定义与用法示例
Jul 05 PHP
Laravel学习教程之本地化模块
Aug 18 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
Nov 22 PHP
laravel使用数据库测试注意事项
Apr 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
基于mysql的bbs设计(四)
2006/10/09 PHP
php小经验:解析preg_match与preg_match_all 函数
2013/06/29 PHP
在PHP中使用X-SendFile头让文件下载更快
2014/06/01 PHP
php实现点击可刷新验证码
2015/11/07 PHP
PHP实时统计中文字数和区别
2019/02/28 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
JavaScript脚本语言在网页中的简单应用
2007/05/13 Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
2012/05/11 Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
2012/06/18 Javascript
图片Slider 带左右按钮的js示例
2013/08/30 Javascript
JQuery实现鼠标滑过显示导航下拉列表
2013/09/12 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
2016/04/18 Javascript
JS常用算法实现代码
2016/11/14 Javascript
详解AngularJS 路由 resolve用法
2017/04/24 Javascript
JavaScript ES6中const、let与var的对比详解
2017/06/18 Javascript
vuex 使用文档小结篇
2018/01/11 Javascript
vuex actions传递多参数的处理方法
2018/09/18 Javascript
js实现前面自动补全位数的方法
2018/10/10 Javascript
手把手带你封装一个vue component第三方库
2019/02/14 Javascript
nodejs中内置模块fs,path常见的用法说明
2020/11/07 NodeJs
[56:47]Ti4 循环赛第三日 iG vs Liquid
2014/07/12 DOTA
Django如何实现内容缓存示例详解
2017/09/24 Python
python使用magic模块进行文件类型识别方法
2018/12/08 Python
pywinauto自动化操作记事本
2019/08/26 Python
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
英国最大的户外商店:Go Outdoors
2019/04/17 全球购物
this关键字的含义
2015/04/08 面试题
公司业务主管岗位职责
2013/12/07 职场文书
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
向国旗敬礼活动总结范文2014
2014/09/27 职场文书
欧也妮葛朗台读书笔记
2015/06/30 职场文书
Python的flask接收前台的ajax的post数据和get数据的方法
2021/04/12 Python
CSS 实现多彩、智能的阴影效果
2021/05/12 HTML / CSS
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA