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

2022-04-15 0 705

本文实例讲述了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相关内容感兴趣的读者可查看本站专题

免责声明:
1、本网站所有发布的源码、软件和资料均为收集各大资源网站整理而来;仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 不得使用于非法商业用途,不得违反国家法律。否则后果自负!

2、本站信息来自网络,版权争议与本站无关。一切关于该资源商业行为与www.niceym.com无关。
如果您喜欢该程序,请支持正版源码、软件,购买注册,得到更好的正版服务。
如有侵犯你版权的,请邮件与我们联系处理(邮箱:skknet@qq.com),本站将立即改正。

NICE源码网 PHP编程 php回调函数处理数组操作示例 https://www.niceym.com/15175.html