美文网首页php
PHP 会遍历操作数组的方法

PHP 会遍历操作数组的方法

作者: 彭晓华 | 来源:发表于2017-05-18 19:05 被阅读34次

    foreach() | list() | extract | array_map() | array_walk() | array_walk_recursive | array_filter() | array_rand() | array_product | array_sum | array_reduce |


    foreach() 遍历数组传递键名和键值操作,键值能够做引用传递修改;
    list() 遍历数组,把数组的值赋值给变量;不能引用产地,不会修改原数组,返回原数组;


    foreach()

    遍历数组的键名和键值操作;没有返回值;

    语法结构汇总:
    fearch(array $array as $val){} 操作键值;不会修改原数组;
    fearch(array $array as &$val){} 引用变量 操作数组的键值,能够修改键值
    fearch(array $array as $key => $val){} 操作数组的键值和键名;不会修改原数组;
    fearch(array $multi_array as list($a....) ){} 操作多维数组,而且第二层次的数组必须是索引数组;
    fearch(array $multi_array as $key => list($a....)){} 操作多维数组,,而且第二层次的数组必须是索引数组;

    语法结构1:

    foreach(array $array as $val){
    $val ;
    }
    传递 键值 操作;不会修改原键值;

    实例:

    $a_name = ['bill','tom','jack']
    foreach($a_name as $val){
        echo $val.' ';
    }
    
    output : bill tom jack;
    

    语法结构2:
    foreach($array as &$val){
    $val
    }
    传递 引用传递;操作会修改原数组;

    实例:

    $a_age = ['bill_age'=>33,'tom_age'=>20,'jack_age'=>40];
    foreach($a_name as &$val){
      $val +=10;
    }
    修改后 $a_age = ['bill_age'=>43,'tom_age'=>30,'jack_age'=>50];
    

    结构语法3:
    foreach($array as list($a....)){
    $a
    }
    搭配 list() 直接操作二维数组,
    实例:

    $a_persional_info = array(
        'bill'=>array('bill','gates',30),
        'thomas=>array('thomas','jefferson',40)
    )
    foreach($a_personal_info as list($str_first_name,$str_last_name,$int_age)){
      echo $str_first_name.' . '.$str_last_name.' is '.$int_age.' years old ! <br/>';
    }
    output  : bill.gates is 30 years old! 
                  thomas.jefferson is 40 years old! 
    

    结构语法4:
    foreach($array as $key => $val){
    $key ;
    $val;
    }
    操作键名和键值;
    实例:

    $a_personal_info = array('name'=>'bill','job'=>'worker','age'=>33)
    foreach($a_personal_info as $key => $val){
      echo $key.'=>'.$val.'<br/>';
    }
    output : name  => bill
             job   => worker
             age   => 33
    

    结构语法5:
    foreach($array as $key => list($a..)){
    $key;
    $a;
    }

    实例:

    $a_persional_info = array(
        'bill'=>array('bill','gates',30),
        'thomas=>array('thomas','jefferson',40)
    )
    foreach($a_personal_info as $key => list($str_f_name,$str_l_name,$int_age)){
      echo $key.' 的年纪是'. $int_age.' 岁!';
    }
    output   : bill 的年纪是30岁!
                   thomas的年纪是40岁!
    

    list()

    把索引数组的键值赋值给变量;
    返回原数组;

    语法结构1:
    list(mixed $name_1,......) = array $array;
    把 索引数组 里面的键值,赋值给变量;
    PHP 7 赋值的顺序从左到右;

    实例:

    list($name,$age,$job) = array('bill',33,'worker');
    echo $name  => bill
         $age   => 33
         $job   => worker
    

    语法结构2:
    list(mixed $name_1, , mixed $name_2) = array $array;
    只获取数组中指定部分,跳过不需要的部分;

    实例:

    list($name , ,$job) = array('bill',33,'worker');
    echo $name.' is '.$job;
    
    output : bill is worker
    

    语法结构3:嵌套使用
    list($a,$b..list($aa,$bb...)) = array $array;

    实例:

    $a_brand_name = array('吉利','奇瑞',array('BMW','VOLVO'));
    list($str_c_brand_name_1,$str_c_brand_name_2,list($str_g_brand_name_1,$str_g_brand_name_2)) = $a_brand_name;
    
    echo $str_g_brand_name_1 
    
    output  : BMW
    

    语法结构4:
    list($a[0],$a[1]....) = array $array;
    用数组捕获键值;

    实例:

    
    $a_brand_name = array('吉利','奇瑞',array('BMW','VOLVO'));
    
    list($a_car_brand[0],$a_car_brand[1],list($a_car_brand[2],$a_car_brand[3])) =$a_brand_name;
    
    print_r($a_car_brand);
    
    output :  Array ( [0] => 吉利 [1] => 奇瑞 [2] => BMW [3] => VOLVO )
    
    

    extract()

    把关联数组的元素导入<a href='http://www.jianshu.com/p/46f91cd5f67a'>当前符号列表</a>中;
    把键名当做变量标识符,键值赋值给变量;
    如果键名当做变量标识符是一个非法的标识符,那么不会被导出;

    基础语法:

    int extract(array $array [,constant $flags = EXTRACT_OVERWRIT [,string $prefix]]);

    -array $array 被操作的的数组;
    -constant $flags 常数,决定键名的转化成变量的方式;
    -EXTR_OVERWRIT 覆盖已有变量;
    -EXTR_SKIP 保留已有变量;
    -EXTR_PREFIX_SAME 如已有同名变量,在同名变量前增加前缀;
    -EXTR_PREFIX_ALL 在所有的键名前增加前缀;
    -EXTR_PREFIX_INVALID 在非法键名前增加前缀;
    -EXTR_IF_EXISTS 导出具有相同变量名的键名,同时覆盖原有的;其他的不处理;
    -EXTR_PREFIX_IF_EXISTS 导出具有变量的键名,同时在键名前增加前缀,成为一个新的变量;
    -EXTR_REFS 导出的变量是数组键值的引用,随数组的改变而改变;同时会覆盖原有变量;
    -string $prefix 添加前缀的字符串;

    备注:

    在增加的前缀同键名之间用 _ 下划线连接;


    语法结构1:
    int extract(array $array )

    导出所有键名为变量名,同时覆盖原有的变量;

    实例:

    $name = 'old_name';
    $a_bill_info = array('name'=>'bill');
    extract($a_bill_info);
    echo $name;
    
    #output : bill;
    
    

    语法结构2:
    int extract(array $array ,EXTR_SKIP)

    导出所有的键名为变量名,同已有变量名相冲突的是否,保留原有的变量;

    实例:

    $name = 'old_name';
    $a_bill_info = array('name'=>'bill');
    extract($a_bill_info,EXTR_SKIP);
    echo $name;
    #output : old_name;
    
    

    语法结构3:

    int extract(array $array ,EXTR_PREFIX_SAME, string $prefix)

    导出所有的键名为变量名,如果同已有变量相冲突,在冲突的键名前增加前缀,为新的变量;

    实例:

    $name = 'old_name';
    $a_bill_info = array('name'=>'bill');
    extract($a_bill_info,EXTR_PREFIX_SAME,'bill');
    echo $bill_name;
    #output : bill;
    
    

    语法结构4:
    int extract(array $array ,EXTR_PREFIX_ALL ,string $prefix)

    导出所有的键名为变量名,同时在所有的键名前增加前缀;
    如果还有同名的变量名,那么覆盖原有的;

    实例:

    $name = 'old_name';
    $a_bill_info = array('name'=>'bill','age'=>20);
    extract($a_bill_info, EXTR_PREFIX_ALL,'bill');
    
    echo $name.'<br/>'.$bill_name.'<br/>'.$bill_age;
    
    

    语法结构5:

    int extract(array $array ,EXTR_PREFIX_INVALID,string $prefix);

    导出所有的键名为变量名,同时在非法的变量名前增加前缀;
    如果有相同的变量名,那么覆盖;

    实例:

    $name = 'old_name';
    $a_bill_info = array('name'=>'bill','1_age'=>20);
    extract($a_bill_info,EXTR_PREFIX_INVALID,'bill');
    echo $name. ' '.$bill_1_age;
    
    #output : bill 20;
    
    

    语法结构6:
    int extract(array $array ,EXTR_IF_EXISTS)

    导出已经存在相同变量名的键名,同时覆盖原有的;
    没有同名变量的键名,不需要处理;

    实例:

    $name = 'old_name';
    $a_bill_info = array('name'=>'bill','1_age'=>20);
    
    extract($a_bill_info,EXTR_IF_EXISTS);
    echo $name ;
    #output : bill;
    
    

    语法结构7:
    int extract(array $array ,EXTR_PREFIX_IF_EXISTS ,string $prefix);

    只导出已经存在相同变量名的键名,同时在键名前增加前缀,变成新的变量;
    如果还是有重复的,那么覆盖原有的;

    实例:

    $name = 'old_name';
    $a_bill_info = array('name'=>'bill','1_age'=>20);
    extract($a_bill_info,EXTR_PREFIX_IF_EXISTS,'bill');
    
    echo $bill_name.' '.$name;
    #output : bill old_name;
    
    
    

    语法结构8:
    int extract(array $array ,EXTR_REFS);

    导出的变量是键值的引用,会随键值的变化而变化;
    覆盖同名的变量;

    实例:

    $name = 'old_name';
    $a_bill_info = array('name'=>'bill','1_age'=>20);
    extract($a_bill_info,EXTR_REFS,'bill');
    echo $name;
    #output : bill;
    $a_bill_info['name'] = tom;
    echo $name;
    #output : tom;
    
    
    

    array_map()

    遍历一个或多个数组,把数组的键值传递给回调函数计算;
    返回一个由函数返回值构成的数组;
    当遍历一个数组的时候,返回数组的键名是原数组;当同时遍历多个数组的时候,返回数组的键名是从0开始的索引值;

    基础语法:

    array array_map(callback $callback ,array $array_1 [array $array_2......]);

    callback $callback 回调函数,函数的第一个参数接受第一个数组传递过来的键值,函数的第二个参数接受第二个数组传递过来的键值。依次往后;
    -如果传递的回调函数是NULL 的话,那么会把数组传递给函数的值直接返回,如果是多个数组传递给函数的话,那么会把多个参数组合成一个子数组返回;
    -不可以传递引用参数;不能够修改原数组的键值;
    -如果同时遍历的多个数组长度不同,那么用空值补充长度不够的数组;
    array $array_1 需要被遍历的数组;


    语法结构1:
    array array_map(callback $callback ,array $array);

    遍历数组的键值,传递给回调函数;
    返回有回调函数的返回值构成的关联数组;
    关联数组的键名 == 原数组键名;

    实例:

    $a_bill_info    =   array('first_name'=>'bill','last_name'=>'bill_ln','age'=>22,'job'=>'worker');
    function add_prefix($v){
      return 'prefix_'.$v;
    }
    print_r(array_map('add_prefix',$a_bill_info));
    
    #output  : Array ( [first_name] => prefix_bill [last_name] => prefix_bill_ln [age] => prefix_22 [job] => prefix_worker )
    

    语法结构2:

    array_map(callback $callback , array $array_1, array $array_2);

    同时遍历多个数组元素;
    返回一个索引数组;

    实例:

    $a_bill_info    =   array('first_name'=>'bill','last_name'=>'bill_ln','age'=>22,'job'=>'worker');
    $a_tom_info =   array('first_name'=>'tom','last_name'=>'tom_ln','age'=>32,'job'=>'worker');
    
    function connect($a,$b){
       return $a.$b;
    }
    
    print_r(array_map('connect',$a_bill_info,$a_tom_info));
    
    #output : Array ( [0] => billtom [1] => bill_lntom_ln [2] => 2232 [3] => workerworker );
    
    

    语法结构3:

    array_map(NULL,array $array_1 ,array $array_2)

    如果回调函数是 NULL 返回一个多维数组;

    实例:

    $a_bill_info    =   array('first_name'=>'bill','last_name'=>'bill_ln','age'=>22,'job'=>'worker');
    $a_tom_info =   array('first_name'=>'tom','last_name'=>'tom_ln','age'=>32,'job'=>'worker');
    $a_jack_info    =   array('first_name'=>'jack','last_name'=>'jack_ln','age'=>27);
    
    print_r(array_map(NULL ,$a_bill_info,$a_tom_info,$a_jack_info));
    
    #output :
    #Array (
    #   [0] => Array ( [0] => bill [1] => tom [2] => jack )
    #   [1] => Array ( [0] => bill_ln [1] => tom_ln [2] => jack_ln )
    #   [2] => Array ( [0] => 22 [1] => 32 [2] => 27 )
    #   [3] => Array ( [0] => worker [1] => worker [2] => )
    # )
    
    #备注:
    
    #注意返回的多维数组中最后一位是空值;
    
    

    array_walk()

    遍历数组,修改原数组的键值;所以常常传递 键值引用 给自定义函数;
    遍历一个数组,把数组的键值,键名依次传递给自定义回调函数;
    如果函数有第三个参数,那么这个参数作为自定义函数的第三个参数,传递给自定义函数;
    成功返回 true 失败 返回 false;

    基础语法:

    boolean array_walk(array $array , callback $callback [,mixed $usedate = NLL]);

    boolean 返回值;
    array $array 需要被遍历的数组;
    callback $callback 自定义回调函数;

    -自定义回调函数的第一参数是键值,第二个参数是键名,第三个参数是 $usedate 默认是NULL;由于这个函数的返回值是boolean 因此主要用来改变原数组的键值使用的,所以第一个参数常常是传递 键值引用;

    mixed $usedate 传递给自定义函数的第三个参数;

    备注:

    array_walk() 和 foreach() 都是遍历数组,
    而且都不能够返回一个具有实际操作意义的值,所以常常都使用键值的引用,都主要用于原数组的修改;
    array_walk() 还有能够检查成功与否的 boolean 返回,而foreach() 什么都没有;
    foreach() 不仅能够遍历数组,还能够遍历对象;

    语法结构1:

    boolean array_walk(array $array ,callback $callback);

    实例:

    $a_salary = ['bill'=>2000,'tom'=>1800,'jack'=>2750];
    function increase(&$v){
      $v *=1.08;
    }
    array_walk($a_salary,'increase');
    print_r($a_salary);
    #output : Array ( [bill] => 2160 [tom] => 1944 [jack] => 2970 );
    

    语法结构2:
    boolean array_walk(array $array ,callback $callback ,mixed $usedate);

    实例:

    $a_salary = ['bill'=>2000,'tom'=>1800,'jack'=>2750];
    $float_ratio = 1.08;
    
    function increase(&$v,$k,$ratio){
      $v *= $ratio;
    }
    
    array_walk($a_salary,'increase',$float_ratio);
    
    print_r($a_salary);
    
    $output: Array ( [bill] => 2160 [tom] => 1944 [jack] => 2970 );
    #备注:
    #函数 increase 必须是三个形参;不能缺少 $k,即使我们不需要;
    

    array_walk_recursive()

    递归遍历数组,把数组的键值传递给自定义函数,
    除了递归遍历外,其他方面同 array_walk 相同;

    基础语法:

    boolean array_walk_recursive(array $array , callback $callback [,mixed $usedate = NULL]);

    boolean 返回值,成功返回 true 失败返回 false;
    array $array 需要被遍历的函数;
    callback $callback 自定义回调函数,
    -自定义函数的第一个参数是数组的键值,因为array_walk_recursive 没有实际意义的返回值,所以一般传递键值的引用,改变原数组;
    -自定义函数的第二个参数是,键名;
    -自定义函数的额第三个参数是 ,mixed $usedate 的值;
    mixed $usedate 传递给自定义函数的第三个值;

    语法结构1:
    boolean array_walk_recursive(array $array , callback $callback);

    function callback(&$v,$k){
    $v,$k;
    }

    不带多余参数的遍历数组;

    实例:

    
    $a_personal_info = array(
                                'bill' => array(
                                                'first_name'    => 'bill_fn',
                                                'last_name'     => 'bill_ln',
                                                'age'          => 55,
                                                'other'     => array('a','b','c')
                                              ),
                                'tom'  => array(
                                                'first_name'    => 'tom_fn',
                                                'last_name'  => 'tom_ln',
                                                'age'          =>   30,
                                                'other'      => array('a','b','c')
                                              ),
                                'jack' => array(
                                                'first_name'    => 'jack_fn',
                                                'last_name'  => 'jack_ln',
                                                'age'          => 20,
                                                'other'      => array('a','b','c')
                                              )
    
                                );
    
    function change_age(&$v,$k){
      if($k == 'age'){
        $v += 10;
      }
    }
    
    if(array_walk_recursive ($a_personal_info, 'change_age')){
      print_r($a_personal_info);
    }
    
    #output :
    #Array (
    #[bill] => Array ( [first_name] => bill_fn [last_name] => bill_ln [age] => 65 [other] => Array ( [0] => 10 [1] => b [2] => c ) )
    #[tom] => Array ( [first_name] => tom_fn [last_name] => tom_ln [age] => 40 [other] => Array ( [0] => 10 [1] => b [2] => c ) )
    #[jack] => Array ( [last_name] => jack_ln [age] => 30 [other] => Array ( [0] => 10 [1] => b [2] => c ) ) )
    
    

    语法结构2:
    boolean array_walk_recursive(array $array , callback $callback , mixed $usedate);

    function callback(&$v,$k,$date){
    $v,$k,$date;
    }

    带额外参数的遍历数组;

    实例:

    
    $a_personal_info = array(
                                'bill' => array(
                                                'first_name'    => 'bill_fn',
                                                'last_name'     => 'bill_ln',
                                                'age'          => 55,
                                                'other'     => array('a','b','c')
                                              ),
                                'tom'  => array(
                                                'first_name'    => 'tom_fn',
                                                'last_name'  => 'tom_ln',
                                                'age'          =>   30,
                                                'other'      => array('a','b','c')
                                              ),
                                'jack' => array(
                                                'first_name'    => 'jack_fn',
                                                'last_name'  => 'jack_ln',
                                                'age'          => 20,
                                                'other'      => array('a','b','c')
                                              )
    
                                );
    
    function change_age(&$v,$k,$date){
      if($k == 'age'){
        $v += $date;
      }
    }
    
    if(array_walk_recursive($a_personal_info,'change_age',1)){
      print_r($a_personal_info);
    }
    
    #output:
    #Array (
    #[bill] => Array ( [first_name] => bill_fn [last_name] => bill_ln [age] => 56 [other] => Array ( [0] => 10 [1] => b [2] => c ) )
    #[tom] => Array ( [first_name] => tom_fn [last_name] => tom_ln [age] => 31[other] => Array ( [0] => 10 [1] => b [2] => c ) )
    #[jack] => Array ( [last_name] => jack_ln [age] => 21 [other] => Array ( [0] => 10 [1] => b [2] => c ) ) )
    
    

    array_filter()

    用自定义函数过滤数组;
    返回一个有自定义函数返回true 的数组元素构成的数组;
    不会改变原有数组元素;

    基础语法:
    array array_filter(array $array ,callback $callback [constant $flags = NULL]);

    array 返回的数组;
    array $array 被过滤的原始数组;
    callback $callback 自定义函数;
    constant $flags 决定传递给自定义函数的参数;
    ARRAY_FILTER_USE_KEY 传递键名;
    ARRAY_FILTER_USE_BOTH 传递键值和键名,第一个参数是键值,第二个参数是键名;
    忽略没有这个参数,传递键值;

    语法结构1:

    array array_filter(array $array ,callback $callback);
    function callback ($v){
    $v;
    }

    实例:

    $a_int = range(1,10);
    function get_even($v){
      if($v%2 == 0){
        return true;
      }
    }
    
    print_r(array_filter($a_int,'get_even'));
    #output : Array ( [1] => 2 [3] => 4 [5] => 6 [7] => 8 [9] => 10 );
    

    语法结构2:
    array array_filter(array $array ,callback $callback ,ARRAY_FILTER_USE_KEY);
    function callback($k){
    $k;
    }

    实例:

    $a_personal_info = array(
                                '王军' => array(
                                                'first_name'    => '军',
                                                'last_name'     => '王',
                                                'age'          => 55,
                                              ),
                                '王丹'  => array(
                                                'first_name'    => '丹',
                                                'last_name'  => '王',
                                                'age'          =>   30,
                                              ),
                                '李明' => array(
                                                'first_name'    => '明',
                                                'last_name'  => '李',
                                                'age'          => 20,
                                              )
    
                                );
    
    function get_people_wangs($k){
      if(mb_substr($k,0,1,'utf-8') == '王'){
        return true;
      }
    }
    
    print_r(array_filter($a_personal_info,'get_people_wangs',ARRAY_FILTER_USE_KEY));
    
    #output:
    #Array ( 
    #[王军] => Array ( [first_name] => 军 [last_name] => 王 [age] => 55 ) 
    #[王丹] => Array ( [first_name] => 丹 [last_name] => 王 [age] => 30 )
    # )
    
    

    语法结构3:

    array array_filter(array $array ,callback $callback ,ARRAY_FILTER_USE_BOTH);

    实例:

    $a_personal_info = array(
                                '王军' => array(
                                                'first_name'    => '军',
                                                'last_name'     => '王',
                                                'age'          => 55,
                                              ),
                                '王军'  => array(
                                                'first_name'    => '军',
                                                'last_name'  => '王',
                                                'age'          =>   30,
                                              ),
                                '李明' => array(
                                                'first_name'    => '明',
                                                'last_name'  => '李',
                                                'age'          => 20,
                                              )
    
                                );
    function get_people($v,$k){
      if(mb_substr($k,0,1,'UTF-8') == '王' && $v['age'] == 30){
        return true;
      }
    }
    
    print_r(array_filter($a_personal_info,'get_people',ARRAY_FILTER_USE_BOTH));
    #output : Array ( [王军] => Array ( [first_name] => 军 [last_name] => 王 [age] => 30 ) );
    
    

    array_rand()

    随机返回键名;

    基础语法:
    mixed array_rand(array $array [int $number = 1]);

    mixed 返回一个键名字符串或 多个键名组成的数组;

    array $array 被操作的数组;
    int $number 指定返回的键名的个数;

    备注:
    如果 int $number >= 数组的长度,那么返回整个键名构成的索引数组,而且排列的顺序同原数组;
    php 获取数组键名的函数

    语法结构1:
    string array_rand(array $array)

    随机返回数组键名字符串;

    实例:

    $a_bill_info    =   array('first_name'=>'bill','last_name'=>'bill_ln','age'=>22,'job'=>'worker');
    
    echo array_rand($a_bill_info);
    #output : 数组中任意一个随机键名;
    
    

    语法结构2:
    array array_rand(array $array , int $number);

    返回一个由随机键名组成的数组;
    如果 int $number >= 数组的长度,返回整个数组的键名,同时顺序同原数组;

    实例:

    $a_bill_info    =   array('first_name'=>'bill','last_name'=>'bill_ln','age'=>22,'job'=>'worker');
    
    print_r(array_rand($a_bill_info,2));
    print_r(array_rand($a_bill_info,count($a_bill_info)));
    
    #output:
    #Array ( [0] => first_name [1] => job )
    #Array ( [0] => first_name [1] => last_name [2] => age [3] => job )
    
    

    array_reduce()

    遍历数组,迭代的把数组简化成一个值返回;

    基础语法:
    mixed array_reduce(array $array ,callback $callback [, mixed $initial = NULL]);

    mixed 返回值;
    array $array 被用来计算的数组;

    callback $callback 自定义函数;
    -mixed callback(mixed $carry ,mixed $item)
    -carry 上次迭代的结果,如果是第一次迭代 则是 initial ;
    -item 这次迭代的值;

    mixed $initial 传递给第一次迭代的自定义函数的第一个参数,或当迭代的数组为空的时候,作为返回值;
    -注意初始值默认是 NULL;

    语法结构1:
    mixed array_reduce(array $array ,callback $callback );

    初始值是NULL 的迭代;

    实例:

    $a_int = range(1,10);
    
    function sum($carry,$item){
      return $carry += $item;
    }
    echo (array_reduce($a_int,'sum'));
    
    #output : 55;
    

    语法结构2:
    mixed array_reduce(array $array ,callback $callback, mixed $initial);

    有额外参数的迭代计算;

    实例:

    $a_int = range(1,10);
    $a_empty = array();
    
    function product($carry,$item){
      return $carray *= $item;
    }
    
    print_r(array_reduce($a_int,'product',1));
    print_r(array_reduce($a_int,'product',1));
    
    #output :
    # 3628800;
    # 1;
    
    

    备注:

    array_reduce() 的第三个参数默认是NULL 在数字计算的时候会转化成0;


    array_product()

    计算数组中所有键值的乘积;返回这个乘积;
    专门用于数字运算;
    被操作数组为空的时候,返回1;

    基础语法:
    number array_product(array $array);

    number 返回 整数 or 浮点数;
    array $array 被遍历的数组;

    实例:

    echo array_product(range(1,10));
    
    #output: 3628800
    
    

    备注:

    被操作数组为空的时候,返回1;
    array_sum() 被操作数组为空的时候,返回0;


    array_sum()

    返回数组中所有键值的总和;
    主要用作数字;
    被操作数组为空的时候,返回0;

    基础语法:

    number array_sum(array $array);

    number 返回整数 or 浮点数;
    array $array 被操作的数组;

    实例:

    echo array_sum(range(1,10));
    
    #output: 55;
    

    备注:

    被操作数组为空的时候返回0;
    array_product() 数组为空的时候返回1;


    相关文章

      网友评论

        本文标题:PHP 会遍历操作数组的方法

        本文链接:https://www.haomeiwen.com/subject/kvtexxtx.html