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 程序授权验证开发思路
Jul 09 PHP
php中用数组的方法设置cookies
Apr 21 PHP
php设计模式 Proxy (代理模式)
Jun 26 PHP
php中如何防止表单的重复提交
Aug 02 PHP
Codeigniter实现智能裁剪图片的方法
Jun 12 PHP
Yii框架中memcache用法实例
Dec 03 PHP
php转换颜色为其反色的方法
Apr 27 PHP
Zend Framework教程之Autoloading用法详解
Mar 08 PHP
PHP验证码无法显示的原因及解决办法
Aug 11 PHP
PHP receiveMail实现收邮件功能
Apr 25 PHP
PHP ADODB生成下拉列表框功能示例
May 29 PHP
PDO::query讲解
Jan 29 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 调用远程url的六种方法小结
2009/11/02 PHP
php检测url是否存在的方法
2015/04/14 PHP
54个提高PHP程序运行效率的方法
2015/07/19 PHP
php curl优化下载微信头像的方法总结
2018/09/07 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
JavaScript入门教程(12) js对象化编程
2009/01/31 Javascript
jquery 读取页面load get post ajax 四种方式代码写法
2011/04/02 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
2015/03/24 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
DOM中事件处理概览与原理的全面解析
2016/08/16 Javascript
纯JS代码实现隔行变色鼠标移入高亮
2016/11/23 Javascript
如何制作幻灯片(代码分享)
2017/01/06 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
微信小程序webview实现长按点击识别二维码功能示例
2019/01/24 Javascript
微信小程序实现展示评分结果功能
2019/02/15 Javascript
vue移动端城市三级联动组件使用详解
2019/07/26 Javascript
[01:07]2015国际邀请赛 中国区预选赛精彩回顾
2015/06/15 DOTA
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
python实现通过代理服务器访问远程url的方法
2015/04/29 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
python机器学习案例教程——K最近邻算法的实现
2017/12/28 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
2018/02/23 Python
python使用参数对嵌套字典进行取值的方法
2019/04/26 Python
Django CSRF跨站请求伪造防护过程解析
2019/07/31 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2020/02/20 Python
删除pycharm鼠标右键快捷键打开项目的操作
2021/01/16 Python
用pip给python安装matplotlib库的详细教程
2021/02/24 Python
可口可乐广告词
2014/03/20 职场文书
房屋继承公证书
2014/04/10 职场文书
中职毕业生自我鉴定范文(3篇)
2014/09/28 职场文书
依法行政工作汇报材料
2014/10/28 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
民主生活会主持词
2015/07/01 职场文书
2015年高校保卫处工作总结
2015/07/23 职场文书