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 相关文章推荐
php设计模式 Command(命令模式)
Jun 26 PHP
PHP的explode和implode的使用说明
Jul 17 PHP
PHP set_error_handler()函数使用详解(示例)
Nov 12 PHP
PHP中常用的转义函数
Feb 28 PHP
php传值赋值和传地址赋值用法实例分析
Jun 20 PHP
PHP的Socket通信之UDP通信实例
Jul 02 PHP
php正则表达式学习笔记
Nov 13 PHP
PHP格式化MYSQL返回float类型的方法
Mar 30 PHP
详解yii2实现分库分表的方案与思路
Feb 03 PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 PHP
Laravel框架用户登陆身份验证实现方法详解
Sep 14 PHP
浅谈php使用curl模拟多线程发送请求
Mar 08 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
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
2014/08/08 PHP
php获取YouTube视频信息的方法
2015/02/11 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
2017/02/23 PHP
浅谈laravel-admin的sortable和orderby使用问题
2019/10/03 PHP
使用IE6看老赵的博客 jQuery初探
2010/01/17 Javascript
JavaScript回调(callback)函数概念自我理解及示例
2013/07/04 Javascript
javascript打印html内容功能的方法示例
2013/11/28 Javascript
Node.js编码规范
2014/07/14 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
2016/03/01 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
vue柱状进度条图像的完美实现方案
2019/08/26 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
详解JavaScript 作用域
2020/07/14 Javascript
[03:08]迎霜节狂欢!2018年迎霜节珍藏Ⅰ一览
2018/12/25 DOTA
Python 实现选择排序的算法步骤
2018/04/22 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
Python自动化运维之Ansible定义主机与组规则操作详解
2019/06/13 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
2020/03/16 Python
基于Tensorflow的MNIST手写数字识别分类
2020/06/17 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
HTML5 Convas APIs方法详解
2015/04/24 HTML / CSS
肯尼亚网上商城:Kilimall
2016/08/20 全球购物
Lookfantastic澳大利亚官网:英国知名美妆购物网站
2021/01/07 全球购物
数据员岗位职责
2013/11/19 职场文书
临床专业自荐信
2014/06/22 职场文书
应届生面试求职信
2014/07/02 职场文书
大学军训自我鉴定大全
2014/09/18 职场文书
教师个人学习总结
2015/02/11 职场文书
领导新年致辞2016
2015/07/29 职场文书
低端且暴利的线上线下创业项目分享
2019/09/03 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书