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变量引用的面试题
Aug 08 PHP
PHP中文分词的简单实现代码分享
Jul 17 PHP
Array of country list in PHP with Zend Framework
Oct 17 PHP
php数组索引与键值操作技巧实例分析
Jun 24 PHP
最新版本PHP 7 vs HHVM 多角度比较
Feb 14 PHP
PHP的swoole扩展安装方法详细教程
May 18 PHP
浅谈php fopen下载远程文件的函数
Nov 18 PHP
PHP十六进制颜色随机生成器功能示例
Jul 24 PHP
PHP迭代器接口Iterator用法分析
Dec 28 PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
May 29 PHP
Laravel validate error处理,ajax,json示例
Oct 25 PHP
利用PHP计算有多少小于当前数字的数字方法示例
Aug 26 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 如何获取二维数组中某个key的集合
2014/06/03 PHP
Thinkphp中的curd应用实用要点
2015/01/04 PHP
php通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
javascript 变量作用域 代码分析
2009/06/26 Javascript
JavaScript学习笔记记录我的旅程
2012/05/23 Javascript
单击浏览器右上角的X关闭窗口弹出提示的小例子
2013/06/12 Javascript
基于jQuery实现仿淘宝套餐选择插件
2015/03/04 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
jQuery实现模仿微博下拉滚动条加载数据效果
2015/12/25 Javascript
学习使用jQuery表单验证插件和日历插件
2017/02/13 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
bootstrap suggest下拉框使用详解
2017/04/10 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
vue+iview+less+echarts实战项目总结
2018/02/22 Javascript
使用RN Animated做一个“添加购物车”动画的方法
2018/09/12 Javascript
为什么说JavaScript预解释是一种毫无节操的机制详析
2018/11/18 Javascript
Vue表单控件绑定图文详解
2019/02/11 Javascript
基于layui的table插件进行复选框联动功能的实现方法
2019/09/19 Javascript
[03:48]显微镜下的DOTA2第四期——TP动作
2014/06/20 DOTA
Python中获取网页状态码的两个方法
2014/11/03 Python
用Python计算三角函数之atan()方法的使用
2015/05/15 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
Python如何在循环内使用list.remove()
2020/06/01 Python
用CSS3绘制三角形的简单方法
2015/07/17 HTML / CSS
英国快时尚女装购物网站:PrettyLittleThing
2018/08/15 全球购物
思想作风整顿个人剖析材料
2014/10/06 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL
DQL数据查询语句使用示例
2022/12/24 MySQL