数组回调相关函数

一、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;
    }
    (五)应用

    求数组所有数字之和。


Moonshadow2333
28 声望0 粉丝

征途漫漫