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 相关文章推荐
做一个有下拉功能的留言版
Oct 09 PHP
PHP3 safe_mode 失效漏洞
Oct 09 PHP
PHP在特殊字符前加斜杠的实现代码
Jul 17 PHP
web server使用php生成web页面的三种方法总结
Oct 28 PHP
使用phpQuery采集网页的方法
Nov 13 PHP
php把session写入数据库示例
Feb 26 PHP
浅谈PHP中静态方法和非静态方法的相互调用
Oct 04 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
Nov 23 PHP
php获取指定数量随机字符串的方法
Feb 06 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
Aug 31 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
Sep 05 PHP
php实现微信和支付宝支付的示例代码
Aug 11 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
解决文件名解压后乱码的问题 将文件名进行转码的代码
2012/01/10 PHP
PDO::lastInsertId讲解
2019/01/29 PHP
PHP实现单例模式建立数据库连接的方法分析
2020/02/11 PHP
Nigma vs Alliance BO5 第五场2.14
2021/03/10 DOTA
JS类的封装及实现代码
2009/12/02 Javascript
jquery remove方法应用详解
2012/11/22 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
2014/01/07 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
2014/03/28 Javascript
js实现从右向左缓缓浮出网页浮动层广告的方法
2015/05/09 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
2016/05/12 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
EasyUI 结合JS导出Excel文件的实现方法
2016/11/10 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
axios向后台传递数组作为参数的方法
2018/08/11 Javascript
如何使用proxy实现一个简单完整的MVVM库的示例代码
2019/09/17 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
解决vue初始化项目一直停在downloading template的问题
2020/11/09 Javascript
python2.7读取文件夹下所有文件名称及内容的方法
2018/02/24 Python
Python Flask前后端Ajax交互的方法示例
2018/07/31 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
2019/05/15 Python
Python3和PyCharm安装与环境配置【图文教程】
2020/02/14 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
python如何获得list或numpy数组中最大元素对应的索引
2020/11/16 Python
印度尼西亚最大和最全面的网络商城:Blibli.com
2017/10/04 全球购物
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
Reformation官网:美国女装品牌
2018/09/14 全球购物
美国在线家居装饰店:Belle&June
2018/10/24 全球购物
香港士多网上超级市场:Ztore
2021/01/09 全球购物
int *p=NULL和*p= NULL有什么区别
2014/10/23 面试题
《陈毅探母》教学反思
2014/05/01 职场文书
工地标语大全
2014/06/18 职场文书
幼儿园新学期开学寄语
2015/05/27 职场文书
惊天动地观后感
2015/06/10 职场文书
运动会通讯稿200字
2015/07/20 职场文书
2016大学生社会实践心得体会范文
2016/01/14 职场文书
Spring Boot 启动、停止、重启、状态脚本
2021/06/26 Java/Android