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 相关文章推荐
require(),include(),require_once()和include_once()区别
Mar 27 PHP
PHP 命名空间实例说明
Jan 27 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
May 04 PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 PHP
Yii2使用swiftmailer发送邮件的方法
May 03 PHP
PHP与jquery实时显示网站在线人数实例详解
Dec 02 PHP
PHP实现网站访问量计数器
Oct 27 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
php微信公众号开发之快递查询
Oct 20 PHP
yii2 在控制器中验证请求参数的使用方法
Jun 19 PHP
php异常处理捕获错误整理
Sep 23 PHP
在Laravel 的 Blade 模版中实现定义变量
Oct 14 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函数
2010/01/11 PHP
防止用户利用PHP代码DOS造成用光网络带宽
2011/03/01 PHP
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
ThinkPHP CURD方法之page方法详解
2014/06/18 PHP
几个实用的PHP内置函数使用指南
2014/11/27 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
2015/03/19 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
PHP预定义接口――Iterator用法示例
2020/06/05 PHP
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
2010/03/23 Javascript
基于JQuery的一句代码实现表格的简单筛选
2010/07/26 Javascript
基于jquery打造的百分比动态色彩条插件
2012/09/19 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
2017/01/04 Javascript
vue指令以及dom操作详解
2017/03/04 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
2018/09/04 Javascript
关于vue组件事件属性穿透详解
2019/10/28 Javascript
vue ssr服务端渲染(小白解惑)
2019/11/10 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
Python深度优先算法生成迷宫
2018/01/22 Python
Windows10下 python3.7 安装 facenet的教程
2019/09/10 Python
Pytorch之卷积层的使用详解
2019/12/31 Python
解决Pytorch训练过程中loss不下降的问题
2020/01/02 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
Python Pandas 对列/行进行选择,增加,删除操作
2020/05/17 Python
css3高级选择器使用方法
2013/12/02 HTML / CSS
Shopty西班牙:缝纫机在线销售
2018/01/26 全球购物
linux面试题参考答案(6)
2016/06/23 面试题
历史专业毕业生的自我鉴定
2013/11/15 职场文书
四年级科学教学反思
2014/02/10 职场文书
银行委托书范本
2014/04/04 职场文书
2014年科室工作总结范文
2014/12/19 职场文书
民事二审代理词
2015/05/25 职场文书
大学生实习证明
2015/06/16 职场文书
2016年会领导致辞稿
2015/07/29 职场文书