php回调函数处理数组操作示例

 更新时间:2020年04月13日 15:12:21   作者:人生如初见_张默  
这篇文章主要介绍了php回调函数处理数组操作,结合实例形式详细分析了PHP回调函数遍历与过滤数组相关操作技巧与注意事项,需要的朋友可以参考下

本文实例讲述了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数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》、《php字符串(string)用法总结》、《php常用函数与技巧总结》、《PHP错误与异常处理方法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》及《PHP数学运算技巧总结

希望本文所述对大家PHP程序设计有所帮助。

相关文章

  • PHP使用CURL模拟登录的方法

    PHP使用CURL模拟登录的方法

    本文给大家介绍的是PHP使用CURL模拟登录的方法,思路和其他模拟登陆的程序不同,有需要的小伙伴可以详细看下。
    2015-07-07
  • php检测mysql表是否存在的方法小结

    php检测mysql表是否存在的方法小结

    这篇文章主要介绍了php检测mysql表是否存在的方法,结合实例形式总结分析了php使用pdo连接及mysql函数实现针对mysql表存在的判断方法,需要的朋友可以参考下
    2017-07-07
  • 详解Laravel制作API接口

    详解Laravel制作API接口

    API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。本文将详细介绍Laravel制作API接口。
    2021-05-05
  • WordPress中注册菜单与调用菜单的方法详解

    WordPress中注册菜单与调用菜单的方法详解

    这篇文章主要介绍了WordPress中注册菜单与调用菜单的方法详解,分别依靠register_nav_menus()函数与wp_nav_menu()函数的使用,需要的朋友可以参考下
    2015-12-12
  • PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】

    PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】

    这篇文章主要介绍了PHP读取XML文件的方法,结合实例形式总结分析了php基于DOMDocument及simplexml方法针对xml文件的载入、读取等相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • PHPTree——php快速生成无限级分类

    PHPTree——php快速生成无限级分类

    在开发中经常需要用到树形数据,比如无限多级分类,就是典型的树形结构。这里面的算法,用到了递归思想,为了简化开发过程,我编写了一个工具来提升开发效率,需要的朋友可以参考下
    2018-03-03
  • php异步多线程swoole用法实例

    php异步多线程swoole用法实例

    这篇文章主要介绍了php异步多线程swoole用法,以实例形式讲述了swoole的异步多线程特性,需要的朋友可以参考下
    2014-11-11
  • PHP实现15位身份证号转18位的方法分析

    PHP实现15位身份证号转18位的方法分析

    这篇文章主要介绍了PHP实现15位身份证号转18位的方法,结合实例形式分析了15位身份证号转18位的相关原理与php实现技巧,需要的朋友可以参考下
    2019-10-10
  • php最简单的删除目录与文件实现方法

    php最简单的删除目录与文件实现方法

    这篇文章主要介绍了php最简单的删除目录与文件实现方法,只需要两行代码即可实现删除目录与文件的功能,是非常实用的技巧,需要的朋友可以参考下
    2014-11-11
  • php递归删除目录与文件的方法

    php递归删除目录与文件的方法

    这篇文章主要介绍了php递归删除目录与文件的方法,涉及递归算法及php操作文件的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-01-01

最新评论