php常用数组函数总结版

来源:互联网 发布:交大医学院网络挂号 编辑:程序博客网 时间:2024/06/01 14:31
数组函数:




1.排序类:【1.无返回值,传值引用,就直接对原数组进行了修改】
    按V:sort,rsort,asort,arsort,


    按K:ksort,krsort


    按字母:natsort();//区分大小写的排序


              natcasesort();//不区分大小写的排序,


              当遇到字符完全一样,按照数字排 eg: FILE1,FILE2, 这两个字符相同,再按照数字1<2排,所以结果  FILE1,FILE2


    回调:usort($arr,"strnatcmp")//回调类的排序,把$arr数组里的每一个元素丢到strnatcmp()[非自然数排序]处理【返回新的排序数组】
    规律:
            没有"k",排序按照【value】排序,排序有"a"的表示要保留KEY,有"r"的倒序排


             有“k”,排序按照【KEY】排序,有"r"的倒序排


             有"u"的,表示要丢到回调函数中处理的




  2.键值操作类:【都有返回值,没有在原来参数上修改】


        1.array_values($arr);//获取$arr中的值重排,去掉下标【返回值新索引数组】


        2.array_keys($arr[,"str",true])//获取$arr中所有字符是"str"的下标,形成索引数组,true表示区分大小写【返回新索引数组】


        3.array_search("is",$arr[,true]) //返回值"is"在$arr中的key,找不到返回fales,true表示严格按照类型(8,"8")【返回第一个匹配值】
        4.in_array("str",$arr);//判断"str"在$arr中是否存在,【返回BOOL】


        5.is_array($arr);//判断是否是数组【返回BOOL】


        6.array_key_exists($key,$arr); //查询$arr中是否有$key,【返回BOOL】


        7.array_flip($arr);// 交换键值,如有重复,后来居上,【返回新数组】


        8.array_reverse($arr,[true|false]);//数组顺序反转,param2是否保留原来键值【返回新关联/索引数组】


        9.array_column(array(),'name'[,name_two]) — 返回数组中指定的name列[可选参数,如果有返回name=>name_two的形式]【返回一维数组】


   3.元素个数和唯一性
        1.array_unique($arr);//去掉$arr中的重复值,重复的保留第一个值,【返回数组,键值保留】


        2.array_count_values($arr)//统计数组值出现的次数,【返回数组,KEY为原来数组的值,VALUE为统计的次数】


        3.count($arr[,1])/sizeof();//统计$arr的元素个数,参数"1"表示统计多维数组开启,默认0为关闭【返回统计个数】




  4.回调函数
        1.array_filter($arr,"function");//把$arr放到函数function中处理,【返回判断为TRUE的数据组成新数组,键值保留】


        2.array_walk($arr,"function"[,"data"]);//把$arr放到function(&$v,$k,$data)中处理【返回值为bool】


        3.array_map("function",$arr,$arr2,$arr3,....);//把所有数组返回到回调函数统一处理,【返回数组】


        4.array_reduce($arr,myfunction[,initial]):把一维数组$arr中的值依次传到自定义函数myfunction($v1,$v2)的v2上,v1为累加值类似于( .= ),[如果有initial,先把其当v1传进去]【返回字符串】


  5.拆分,合并,分解,接合数组


        1.array_slice($arr,1[,2]);//在$arr中,从第二个开始取[,返回俩个值]【返回新数组(对原数组无影响),键值保留】


        2.array_splice($arr,1[,2,"aaa","bb"]);//删除或替换,从$arr第二个开始取,删除或替换2个值【返回值为新数组,拆掉原数组】
        3.array_combine($arr1,$arr2);//数组$arr1为KEY,$arr2为VALUES结合形成新索引数组【返回索引数组】


        4.array_merge($arr1,$arr2,$arr3...);//数组进行合并,保留键值,有重复,后来者居上【返回新数组】


               array_merge发现有key值相同的,取后者;
               $arr1+$arr2 发现有key值相同的,取前者,第二个重复的值丢弃


        5.array_intersect($arr1,$arr2)//返回两个数组的交集,键值不变


        6.array_diff($arr1,$arr2)//返回两数组的差集,返回的值为第一个数组的值,键值不变


        7.array_chunk($arr,2)//分割数组,把$arr按照【2个为一组】均等分割【返回一个二维数组】




  6.数组的数据结构【2.无返回值,传值引用,就直接对原数组进行了修改】


        1.array_shift($arr)//从开头,删除数组第一个元素


        2.array_unshift($arr,"one","two")//从开头,添加元素


        3.array_pop($arr)//从结尾,删除数组最后一个元素


        4.array_push($arr,"aaa");//从结尾,添加元素


        
        6.current($arr)//返回数组中的当前单元 比如是关联数组是不知道下标,可以输出当前数组的办法解决


        7.key($arr)//返回当前指针指向元素的键值




        8.next($arr)//当前指针下移


        9.pre($arr)//当前指针上移






        10.end($arr)//指针指到最后


        11.reset($arr)//指针回归到开头


        
        12.unset($arr)//销毁此数组


  7.其他
        1.array_rand($arr,2);//随机返回两个$arr数组当中的key【返回值为值或者数组】


        2.shuffle($arr)//随机的重组$arr,顺序变乱【返回新数组,保留键值】


        3.array_sum($arr);//返回$arr的value的和【返回一个值】


        4.range(0,10,2,)//快速创建0,10的数组,间隔为2,所以有5个值【返回新索引数组】


        5.http_build_query($arr)//把关联数组转换成一个经过urlencode加密的URL eg:array["a"=>2];=>URL:a=2&
原创粉丝点击