当前位置:首页 > PHP教程 > php函数 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2022-02-26 08:50:42 浏览: 评论:0 

本文实例讲述了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,该参数将在处理开始前使用,或者当处理结束,数组为空时的最后一个结果。】

例:

  1. $res = [ 
  2.  '0' => [ 
  3.  'a' => 'you'
  4.  'b' => 'me' 
  5.  ], 
  6.  '1' => [ 
  7.  'c' => 'li'
  8.  'd' => 'op' 
  9.  ] 
  10. ]; 
  11. $res = array_reduce($res,function($result,$value) { 
  12.  return array_merge($result,array_values($value)); 
  13. },array()); 
  14. var_dump($res); 

输出:

  1. array(4) { 
  2.   [0]=> 
  3.   string(3) "you" 
  4.   [1]=> 
  5.   string(2) "me" 
  6.   [2]=> 
  7.   string(2) "li" 
  8.   [3]=> 
  9.   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同时接受键名和键值

例:

  1. function odd($var
  2.   // returns whether the input integer is odd 
  3.   return($var & 1); 
  4.    
  5. function even($var
  6.   // returns whether the input integer is even 
  7.   return(!($var & 1)); 
  8.    
  9. $array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5); 
  10. $array2 = array(6, 7, 8, 9, 10, 11, 12); 
  11.    
  12. echo "Odd :\n"
  13. print_r(array_filter($array1"odd"));//1,3,5 
  14. echo "Even:\n"
  15. print_r(array_filter($array2"even"));//2,4,6 

array_map — 为数组的每个元素应用回调函数

array_map ( callable $callback , array $array1 [, array $... ] )

参数

callback--回调函数,应用到每个数组里的每个元素。

array1--数组,遍历运行 callback 函数。

...

数组列表,每个都遍历运行 callback 函数。

返回值----返回数组,包含 callback 函数处理之后 array1 的所有元素。

例:

  1. function cube($n
  2.   return($n * $n * $n); 
  3. $a = array(1, 2, 3, 4, 5); 
  4. $b = array_map("cube"$a); 
  5. print_r($b); 

输出:

  1. Array 
  2.     [0] => 1 
  3.     [1] => 8 
  4.     [2] => 27 
  5.     [3] => 64 
  6.     [4] => 125 
  7. )

Tags: php回调函数 php处理数组

分享到: