zoukankan      html  css  js  c++  java
  • PHP之数组函数归类

         数组之所以强大,除了本身声明、存储方式灵活,它还有坚强后盾:一系列功能各异的数组处理函数。就像一只军队,除了领队将军本身能征善战,指挥英明之外,还有一群不怕死、忠实于他的士兵,这样才能显得整体的强大。

         由于函数众多,易记混,况且还有手册在那儿,但是,最好还是每一个都鲁一遍,说不定要用到呢~

         一、键/值处理

         array_values()   返回数组中的值

         array_keys   返回数组中的键名

         array_change_key_case   返回全为大写会小写的数组的键名

         array_column   返回指定键名的列,版本须>=5.5

         in_array/array_search   判断值是否在数组中,注意默认为不严格的比较,不对型和值同时作检查,只要能转为相同的值就可以

         array_key_exists   判断键是否在数组中

         array_flip   将键与值反转,对调位置,键变为值,值变为键。对于相同的值,变换为键后,后面的键将把前面的键覆盖

         array_reverse   倒置数组,与原顺序相反

         二、全值统计

         array_sum   求数组中的所有值的和

         array_product   求数组中所有值得积

         count/sizeof    返回数组中元素个数

         array_count_values   返回每个值出现的次数,键名为该值 

         三、切删处理

         array_chunk   将数组分块,比如将一维数组切分成更小size的数组,最后各个数组整合在一起形成二维数组返回

         array_slice   从数组中切一段返回,注意传入偏移、长度参数的正负,偏移为正则从数组左边开始,为负则从末端倒数这么多个开始。长度为正则切出这么多个,为负则切到末端倒数到这个长度值为止

         array_splice   从数组中切出一段,要么删除,要么用其他值代替删除的一部分,注意传入偏移和长度参数的正负

         array_unique   将重复值归并为一个,非严格判断

         四、填充处理

         array_pad   用指定值将数组填充到指定长度,指定长度小于本身长度时不作处理

         array_fill   指定偏移、长度、填充值,返回填充后的数组

         array_fill_keys(array $keys, mixed $value)    以一个作为键的数组和指定值来生成一个数组

         五、集合运算

         array_diff    差集,仅比较值

         array_diff_key   差集,仅比较键

         array_diff_assoc    差集,比较键和值,即当键与值均相同时才被认为是同样的元素。判断同与不同均执行严格的全等于检查

         array_diff_ukeys    使用用户自定义函数,通过键名比较,带u的表示user,即用户自定义的比较形式

         array_diff_uassoc    自定义函数,键和值比较差值运算

       

         array_intersect    交集运算,类上

         array_intersect_key    

         array_intersect_assoc   

         array_intersect_ukey

         array_intersect_uassoc

     

          array_merge   并集,注意当为字符串索引且相同时后一个值会覆盖前一个值,当为整数索引时只会将后一个值附加上来

          array_merge_recursive   递归合并,即当数组中元素仍为数组时,继续执行并操作,注意此时相同的字符串键名的元素会合并到同一个数组中去,整数索引的元素仍为附加

    对于差集和交集,还有用回调函数处理值的(array_udiff),或同时使用两个回调函数来处理键和值(array_udiff_uassocarray_uintersect_uassoc)等等。

          六、类数据结构处理

          array_push   从数组末尾添加元素,可一次添加多个

          array_pop   从末端弹出一个元素

          array_shift  从头部弹出一个元素

          array_unshift   从头部添加一个元素  

          以上函数就可以模拟栈、队列等结构

          七、使用回调函数

          array_reduce   使用自定义函数将数组中的值转化为一个值,比如相乘、相加等

          array_walk   对数组中每个元素使用回调函数遍历一遍

          array_walk_recursive   上面的递归版本,子元素为数组时,将子元素中的每一个元素再使用回调函数处理一遍

          array_filter   使用回调函数设定条件,对数组元素过滤,比如取奇数

          array_map  可以传递多个数组,回调函数的参数个数需与数组参数个数保持一致,遍历处理时参数与数组参数顺序一一对应,返回回调处理后的一维数组。如果数组元素不够将以空代替 

         八、排序函数

         sort    升序排列,可以更改各种排序模式

         rsort   降序排列(rreverse,颠倒,倒置,即反向的意思)

         usort   使用用户自定义函数排序

         asort   升序排列,保持原索引不变

         arsort   类上的降序排列 

         uasort   用户自定义函数升序排列,保持原键名

         ksort   按照键名,升序排列

         uksort   使用用户自定义函数,按照键名升序排列

         krsort   按照键名,降序排列

         natsort   使用自然排序法进行升序排列  

         natcasesort   natsort不区分大小写的版本

         array_multisort   对多个或多维数组排序,实现多个或多维数组联动排序,可达到SQL语句的order by多个字段的效果

         九、其他函数

         range   生成指定范围的索引数组

         array_rand    随机返回数组中的若干个键名,默认返回一个

         shuffle   将数组内元素打乱

         array_combine   以一个数组值作为键,另一个数组值作为值,联接生成一个数组

         implode   将数组连接为一个字符串

         explode   将字符串劈分成一个数组

     

  • 相关阅读:
    Codeforces 787B. Not Afraid
    Codeforces 670D. Magic Powder
    POJ 1979 Red and Black
    T1215:迷宫
    POJ 1163 The Triangle
    洛谷P1219 八皇后
    T1212:LETTERS
    T1317:【例5.2】组合的输出
    洛谷P1706 全排列问题
    codevs 5971 打击犯罪
  • 原文地址:https://www.cnblogs.com/lazycat-cz/p/4044039.html
Copyright © 2011-2022 走看看