关于php:数组回调相关函数

5次阅读

共计 1248 个字符,预计需要花费 4 分钟才能阅读完成。

数组回调相干函数

一、array_filter

(一)语法
array array_filter (array $array [, callable $callback [, int $flag = 0]] )
(二)参数
  • array:数组;
  • callable:回调函数(可选)。
(三)性能

array_filter() 函数用回调函数过滤数组中的元素。

(四)自定义 array_filter
function myArrFilter(array $arr,callable $func){foreach($arr as $k =>$v){if($func($v)){$re[$k] = $v;
        }
    }
    return $re;
} 

二、array_map

(一)语法
array_map(myfunction,array1,array2,array3...)
(二)参数
  • myfunction:回调函数;
  • array:数组;
(三)性能
 将用户自定义函数作用到给定数组的每个值上,返回新的值。
(四)自定义 array_map
function myArrMap(callable $func,array $arr){foreach($arr as $v){$re[] = $func($v);
    }
    return $re;
}

目前自定义的 myArrMap 函数并没有齐全实现 array_map 的性能,先占位吧,当前再欠缺。

(五)例子:
<?php
function myfunction($num)
{return($num*$num);
}
 
$a=array(1,2,3,4,5);
print_r(array_map("myfunction",$a));
/*
    [0=>1,1=>4,2=>9,3=>16,4=>25]
*/

三、array_walk

(一)语法
array_walk(array,myfunction,parameter...)
(二)参数
  • array:数组;
  • myfunction:回调函数。
(三)性能

对数组中的每个成员利用用户函数。

(四)自定义 array_walk
function myArrWalk(array $arr,callable $func){foreach($arr as $k => $v){$func($v,$k);
    }
}

四、array_reduce

(一)语法
array_reduce(array,myfunction,initial)
(二)参数
  • array:数组;
  • myfunction:回调函数;
  • initial:初始值,规定发送到函数解决的第一个值。
(三)性能

发送数组中的值到用户自定义函数,并返回一个字符串。
正文:如果数组是空的或者初始值未传递,该函数返回 NULL。

(四)自定义 array_reduce
function myArrReduce(array $arr,callable $func,$init = ''){if(empty($arr) || empty($init)){return NULL;}
    foreach($arr as $v){$re = $func($init,$v);
        $init = $re;
    }
    return $re;
}
正文完
 0