• 6.6-1-php数组相关(2)


    1.for比较少用遍历连续数字下标的数组,和c语言差不多,简单记录一下:

    for(int $i=0;$i<count($arr);$i++){.....$arr[$i]......}

    2.php有专门遍历数组而设计的foreach语句

    foreach( $arr as $value ){}

    foreach( $arr as $key=>$value){}

    多维:使用嵌套

    foreach ( $arr as $key => $arr1 ){

      foreach($arr1 as $value ){ ...$value...}

    }

    3.使用each()函数

    each($arr) ->  返回一个有四个元素的关联和索引混合的数组

    并移动数组指针,直到返回false

    4.list()

    为数组赋值:

    $info = array("coffee","brown","caffeine");

    list($a , , $c)=$info;

    echo $c;                             // caffeine

    注意:list只能应用于数字索引的数组并假定索引从0开始。索引才有了后面的while(list()=each())的使用。

    5.each() 和 list() 循环使用

    while( list ( $key,$value) = each($arr)){}

    在使用while遍历数组后,each语句已经将指针指向数组末端。再次用while语句需要使用reset()

    6.使用数组内部指针控制函数遍历数组

     7.数组相关函数

    array_values($contacts);                 //数组,返回所有值

    array_keys($contacts);                   //数组,返回所有健值

    7.1.1 :  

    in_array(mixed needle ,array haystack, [bool strict] );        //查找某值是否在指定数组中,返回bool

    needle:要查找的值(简单数据类型,数组等),

    haystack:查找的数组,

    strict:十分严格界定数据类型查找。

    in_array函数区分查找内容的大小写。

    7.1.2

    $key_name = array_search("$value",$array )              //参数与上相同,检查某值是否在其中,返回其健。

    7.1.3

    bool   array_key_exists("key_name",$array);               //检查数组是否存在指定健

    对数组中为null的值会返回true。而isset()会。

    7.2

    函数  $Array = array_flip( $Array );                              //反转数组的健和值

    如果一个值出现多次,则取最后一个重复的值覆盖前面的键值对。

    如果有值不是字符串或数组类型,则报错。

    7.3 函数 $Array = array_reverse( $Array ,bool lose_key );              //反转数组元素顺序

    第二个参数是可选的,如果为true ,则键名将丢失。

    8.统计元素的个数和唯一性

    8.1 函数count() ,sizeof()是他的别名,功能是一样的

    int  count( $var , bool mode )

    第一个值为传入要计数的数组或对象,第二个参数为可选,为0或1,是否递归查询多维数组中元素的个数。

    count ( $web , 1) = 10 ;

     8.2 函数 $Array = array_count_values ( $ Array )        //统计数组中值出现的次数

     8.3 函数  $Array = array_unique ( $Array );                 //删除数组中重复的值,返回没有重复的新数组。

    函数先将值作为字符串排序,然后每个值保留第一次出现的键名的值。注意,先排序,并不是保留出现的第一个。

    9.5.3 使用回调函数处理数组的函数

    1. array  array_fliter ( array input , "callback function");

    第一个参数是需要过滤的数组,第二个参数是将自定义函数以字符串形式传入,

    依次将第一个参数的数组的值传入第一个函数,如果返回的是true ,则相应的健值

    会传入新形成的array

     2.array_walk()

     bool array_walk( array &array , callback funcname , (mixed data) );

    第一个为要处理的数组,第二个为回调函数,

    函数接收的参数依次为: 元素的值,元素的键,(mixed data)

    如果需要直接作用于数组的值,将回调函数的第一个参数指定为引用,&$value

    function myfunc3( &$value,$key){

      $value = "web";

    }

     array_walk( $arr , "myfunc3");

    array_map ,作用于多个数组。

    9.5.4 数组排序

     1.

    sort(array $array , [sort_flag] );                           //升序

    rsort(array $array , [sort_flag] ); 

    此方法键名被忽略,将依序重新使用数字重新索引数组下标。

    sort_flag : 指定排序类型。

    2.

    ksort()                                                           //根据键名排序

    krsort()

    3.

    asort() /arsort()                                              //根据值排序

    与sort()相比,将保留键名

    9.5.5 拆分、合并数组

     1.

    array array_slice ( array array , int offset [, int length[,bool preserve_keys]])

    去一段值并返回

    2.

    array array_splice ( array &input , int offset , [ , length [ , replacement]])

    移除或替代

     3.

    array_combine (array key ,array value)

    合并数组,第一个数组作为键,第二个数组作为值,两个参数必须有相同数目的元素

    4.

    array_merge ( array array1 [ , array array2 [ , array array3]])

    连接数组。

    如果键名有重复,则最后一个将覆盖。

    如果键名是整数,将以0开始重新索引。

    5.

    array_intersect( array1 ,array2 , [ ,array3 ...])

    交集。

    键名保留不变,只有值比较

    6.

    array_diff( array1 ,array2 , [ , array3...])

    差集

    9.5.7其他一些有用的数组处理函数

    1. mixed array_rand ( array input [ , int num_req ] ) )

    从数组中随机选出一个或多个元素返回。

    2.shuffle ( ) 把数组元素随机重新排序

    3.array_sum() 返回数组所有值的总和

    4.array range( mixed first , mixed second , [ , num step] )

    创建并返回指定范围的数组。

  • 相关阅读:
    UIAction 公共界面访问控制(拦截控制)
    MD5加密
    SVN的简单用法
    Spring AOP基础之JDK动态代理
    Spring中的事务管理模块基础
    Spring添加Junit4支持
    Spring里面dbcp连接池的配置和使用
    vue.js自定义指令详解
    vue input输入框联想
    export ,export default 和 import 区别 以及用法
  • 原文地址:https://www.cnblogs.com/John-/p/6950317.html
Copyright © 2020-2023  润新知