array_change_key_case(数组,CASE_LOWER/CASE_UPPER)
数组键值转化为小写CASE_LOWER/大写CASE_UPPER
 
array_chunk(数组,分割后每个子数组里元素个数,true/false)
分割数组,第三个参数为true-保留原始数组中的键名 false-默认 从0开始的新数组索引
 
array_column(二维数组,key,other_key可选参数)
返回二维数组中的某一列,key和other_key对应的值,组成新的other_balue=>value数组
 
array_combine(键名数组,键值数组)
通过合并两个数组来创建一个新的数组,数组不可以为空,数组长度不可不同,否则返回false
这个数组函数在以小时为单位,统计访问量的时候用过
 
array_count_values(一维数组)
返回以每个元素的值为key,元素个数为value的新的数组.
 
array_diff(数组1,数组2,数组3.....)
返回在数组1中有,但是在数组2数组3...中没有的,数组的值构成的数组
 
array_diff_assoc(数组1,数组2,数组3.....)
和array_diff相比,除了比较数组的值还比较数组的键,返回差集
 
array_diff_key(数组1,数组2,数组3...)
比较数组的键,返回差集
 
array_intersect(arr1,arr2,arr3.......)
比较数组的键值并返回交集.需要注意的是这里交集指的意思是,同时存在于数组1,2,3中的值,返回新的数组,键名以数组1的为准
 
array_intersect_assoc(arr1,arr2,arr3.......)
比较数组的键名和键值并返回交集
 
array_intersect_key(arr1,arr2,arr3.......)
比较数组的键名,并返回交集
以上三种比较最终返回的都是数组1中的键值对,只不过比较的类型不同
 
数组比较函数,返回的都是在数组1中存在的键值对,但是比较类型有所不同
(1)比较数组的值
(2)比较数组的键
(3)比较数组的键和值
 
array_fill(index1,number填充个数,填充的元素)
定义数组.用给定的值填充数组,填充个数number
 
array_combine和array_combine配合使用过滤敏感词汇
(1)敏感词汇组成的数组
$badword = array('张三','张三丰','张三丰田');
 
(2)敏感词汇转换成键,替代敏感词汇的*为值
$badword1 = array_combine($badword,array_fill(0,count($badword),'*'));
//Array ( [张三] => * [张三丰] => * [张三丰田] => * )
 
(3)通过strtr函数将敏感词汇替换
$bb = '我今天开着张三丰田上班';
$str = strtr($bb, $badword1);
echo $str;//我今天开着*上班
 
strtr字符串替换函数的两种用法
(1)strtr(string,from,to)
把string字符串里的from替换成to,需要注意的是from=>to f都替换成t,r都替换成0,om没有可替换的,不变,因为to就两个长度
(2)strtr(string,array)
将array中的键名出现在string中的,统一替换成键名对应的键值
 
如果只是简单地替换某一个敏感词汇,一个strtr函数就够了,如果是替换很多敏感词汇,除了用第二种方式外,有时候还需要配合数组函数,因为用于替换的可能不止是*
 
判断一个string中是否有某一些词汇
(1)将需要检索的词汇拼接成字符串
$hei=array('中国','日本');
$blacklist="/".implode("|",$hei)."/i";
 
(2)匹配string中是否出现这些词汇
$str="中国一是一个很好的国家";
if(preg_match($blacklist, $str, $matches)){
print "found:". $matches[0];
} else {
print "not found.";
}
 
array_fill_keys(array作为键名的数组,value要填充的值)
键名数组的键值将作为新数组的键名
所以过滤敏感词汇的第二步就可以:
由$badword1 = array_combine($badword,array_fill(0,count($badword),'*'));
改为$badword1 = array_fill_keys($badword,'*')
 
一千个人中随机选出1,2,3等奖,可以理解为在1000-n个空数组中随机插入n个获奖人员
(1)制造出包含30个元素的数组,包含未中奖和中奖人员
一等奖1个 = array_fill(0,1,1)
二等奖2个 = array_fill(0,2,2)
三等奖3个 = array_fill(0,3,3)
不中奖24个 = array_fill(0,24,0) 共计30人,有6人可中奖
$arr = array_merge(一等奖,二等奖,三等奖,不中奖)
(2)数组合并以后,需要把顺序打乱
shuffle($arr)
最终随机选出1等奖2等奖3等奖.shuffle(英文意思洗牌/调动/换位置)
 
array_filter(数组,回调函数)
回调函数过滤掉数组中的元素(也可以理解为过滤出数组中的元素)
回到上一个抽奖的问题中,如何把1,2,3等奖过滤出来,拿出他们的编号呢?
function getWinning($a){
if($a == 1 || $a == 2 || $a == 3){
return 1;
}else{
return 0;
}
}
$win = array_filter($arr, 'getWinning')
最终通过自定义函数将中奖的过滤出来
Array ( [3] => 3 [8] => 3 [11] => 3 [12] => 2 [17] => 2 [18] => 1 )
 
array_flip(array)
反转数组,将数组的键和值互换.需要注意的是,如果一个值存在多个,那么最后一个键名将作为反转后的值.
 
array_key_exists(key,array)
判断key是否存在数组中
需要注意的是:根据microtime(true)计算出来的时间,在执行效率方面
isset > array_key_exists > in_array
备注:在数据量小的时候,isset和array_key_exists效率差别不大
 
array_keys(arr,指定的值可选参数,true/false)
返回包含数组中所有键名的新数组(索引数组)
第二个参数是只返回指定值的键名
第三个参数是基于第二个参数的,如果是true,键值将以===对比,反之则为==对比
 
array_map(function,array1,array2....)
函数作用于数组中的值,返回新的值组成的数组
 
array_merge(arr1,arr2,arr3)
将多个数组合并成一个数组.
(1)当数组中的键名一样的时候,最后的键值以arr3(后面的数组)的为准
(2)当只有一个数组的时候,而且数组的键名是数字,将返回index从0开始的数组
在合并的这些数组中所有没有键名的值,将从0开始作为key依次递增
 
array_merge_recursive(arr1,arr2,arr3....)
当键名一样的时候,将键名相同的值重新组成一个索引数组
Array ( [a] => red [b] => Array ( [0] => green [1] => yellow ) [c] => blue )
 
array_pad(arr,size,value)
将指定数值插入数组中,并返回长度为size的新数组,原数组键值不变
size的绝对值如果小于arr的长度,则直接返回arr,不会插入value
如果size的值为负数,则会在arr的头部插入指定值
 
array_pop(arr)
删除数组中的最后一个元素,返回删除的元素
如果是空数组直接返回null
 
array_shift(arr)
删除数组中的第一个元素,返回删除的元素
如果数组是空直接返回null
 
array_push(arr, value1, value2...)
在数组的尾部插入值
 
array_unshift(arr, value1, value2...)
在数组的头部插入值
 
array_product(arr)
返回数组中所有元素的乘积,字符串将被视为0
 
array_sum(arr)
返回数组中所有值的和
 
array_rand(arr, number)
从数组中随机返回一个或多个元素.
number>0的时候返回的是有多个随机值组成的数组
 
array_reduce(arr, function, 发送到函数的初始值可选)
向用户自定义函数发送数组中的值,并返回一个字符串
类似implode,但是可选择性更多
 
array_replace(arr1,arr2,arr3....)
后面数组取代(键名相同的)前面数组的值
如果一个键存在于第二个数组 array2,但是不存在于第一个数组 array1,则会在第一个数组 array1 中创建这个元素
 
array_replace_recursive(arr1, arr2, arr3...)
递归地使用后面数组的值取代前面数组的值
 
sort根据数组的值进行升序排序,生成的新数组会赋予从0开始的索引
rsort根据数组的值进行降序排序,生成新数组会赋予从0开始的索引
asort/arsort用法和sort/rsort类似,只是asort/arsort会保留原有索引关系
ksort根据数组的键名进行升序排序,生成的新数组沿用之前的键名不变
krsort根据数组的键名进行降序排序,生成的新数组沿用之前的键名不变
 
array_multisort(arr1,升序/降序,排序类型,数组2,升序/降序,数组2的排序类型....)
对多个数组进行排序
排列顺序:SORT_ASC升序 SORT_DESC降序 默认为升序
排序类型:默认SORT_REGULAR 把每一项按常规顺序排列(Standard ASCII)
 
$a=array(100,2, 4, 7, 7);
$b=array(ab, ac,ad,ag,ap);
array_multisort($a,SORT_NUMERIC,SORT_DESC,$b,SORT_STRING,SORT_ASC);
print_r($a);//Array ( [0] => 100 [1] => 7 [2] => 7 [3] => 4 [4] => 2 )
print_r($b);//Array ( [0] => ab [1] => ag [2] => ap [3] => ad [4] => ac )
多数租排序数组的长度还必须一样,否则会报错
数组2会按照数组1的索引顺序,排列自己的元素
 
array_reverse(arr, true/false)
反转数组,如果第二个参数为true,则保留原有键名,否则索引从0重新排序
 
array_search(value, arr, true/false可选)
在数组中搜索某个键值,并返回键名.需要注意的是,当value存在多个时,返回第一次检索到的键名,当第三个可选参数为true时,value的匹配为===(全等)
array_search()和in_array()用法类似,如果未查询到,将会返回false
 
array_slice(arr,index,length可选,true/false可选)
从数组中取出一段值.第四个参数为true则保留键名,第二个参数如果为负数,则从倒数第index个开始取值.
 
array_splice(arr1, start, length可选, arr2可选)
移除并替换arr1中的元素,返回被删除元素的数组 如果length为0,则将从start处,插入arr1中的元素,start表示数组索引index
 
array_nuique(arr, sortingtype可选)
一般用于一维数组去重,第二个参数为可选
如果是二维数组去重,第二个参数为SORT_REGULAR,键名键值完全相同的子数组元素才会被去重,如果想去重的二维数组只是去掉重复的值不包含键名,那么一般需要将二维数组降维,然后再去重
 
array_values(arr)
返回数组中的值,索引将从0开始递增.备注:也适用于二维数组
 
array_walk(arr, function, 自定义function的参数/可选)
对数组中的每个元素应用回调函数.如果成功返回true,否则返回false
 
$var1 = 12
$var2 = 13
compact(var1, var2...)
创建一个以变量名为键名,变量值为键值的关联数组.如果参数为数组,那么数组中的值将作为变量名,来获取值. 允许var变量不存在
 
current(arr)
返回数组内部指针指向的元素,初始指向插入到数组中的第一个元素
 
shuffle(arr)
将数组打乱
 
 
 
 
 
 
 
 
 
 
 
 

PHP数组函数总结与使用的更多相关文章

  1. 前端学PHP之数组函数

    × 目录 [1]键值操作 [2]记数[3]回调函数[4]组合[5]栈和队列[6]顺序 前面的话 PHP中的数组功能非常强大,数组处理函数有着强大.灵活.高效的特点.PHP5提供了近100个操作数组的系 ...

  2. PHP数组函数: array_walk()与 array_map() 的区别

    详细的介绍如下: PHP数组函数: array_walk() PHP数组函数: array_map() 实际应用中的一点区别与总结: array_walk() 主要用于对某个数组的迭代,相当于 for ...

  3. php常用数组函数回顾一

    数组对于程序开发来说是一个必不可少的工具,我根据网上的常用数组函数,结合个人的使用情况,进行数组系列的总结复习.里面当然不只是数组的基本用法,还有相似函数的不同用法的简单实例,力求用最简单的实例,记住 ...

  4. javascript函数一共可分为五类: ·常规函数 ·数组函数 ·日期函数 ·数学函数 ·字符串函数

    javascript函数一共可分为五类:    ·常规函数    ·数组函数    ·日期函数    ·数学函数    ·字符串函数    1.常规函数    javascript常规函数包括以下9个 ...

  5. PHP 数组函数整理

    如果你已经使用了一段时间PHP的话,那么,你应该已经对它的数组比较熟悉了——这种数据结构允许你在单个变量中存储多个值,并且可以把它们作为一个集合进行操作. 经常,开发人员发现在PHP中使用这种数据结构 ...

  6. PHP函数积累总结(Math函数、字符串函数、数组函数)

    Math函数:10个较常用标红.abs — 绝对值acos — 反余弦acosh — 反双曲余弦asin — 反正弦asinh — 反双曲正弦atan2 — 两个参数的反正切atan — 反正切ata ...

  7. PHP常用数组函数

      一.数组操作的基本函数 数组的键名和值 array_values($arr);  获得数组的值 array_keys($arr);  获得数组的键名 array_flip($arr);  数组中的 ...

  8. PHP学习之[第06讲]数组、多维数组和数组函数

    一.数组 ①Array(“aa”,12,true,2.2,”test”,50); ②Array(“title”=>“aa”,  ”age”=>20); 1.创建: $arr= array( ...

  9. [转] 有趣的JavaScript原生数组函数

    在JavaScript中,可以通过两种方式创建数组,Array构造函数和 [] 便捷方式, 其中后者为首选方法.数组对象继承自Object.prototype,对数组执行typeof操作符返回‘obj ...

  10. PHP 中数组函数 isset 效率比 array_key_exists 更高

    PHP 中数组函数 isset 效率比 array_key_exists 更高 PHP 浏览:4194 2014年04月05日 isset 和 array_key_exists 函数都可以用来测试数组 ...

随机推荐

  1. layui使用html+servlet+ajax实现登录验证

    我们一般使用的都是form表单提交到Servlet来实现前端和后端的交互的.这次我使用的是ajax提交数据,实现登录操作. 首先我们需要的是一套layui模板,这里用到layui的js和css界面. ...

  2. SQL语句修改字段类型与第一次SQLServer试验解答

    SQL语句修改字段类型 mysql中 alert table name modify column name type; 例子:修改user表中的name属性类型为varchar(50) alert ...

  3. [luogu5180]支配树

    对于有向图$G$和起点$s$,有以下定义和性质-- 为了方便,不妨假设$s$能到达$G$中所有点,并任意建立一棵以$s$为根的dfs树,以下节点比较默认均按照两点在这棵dfs树上的dfs序 支配点:$ ...

  4. [atARC062F]Painting Graphs with AtCoDeer

    求出点双后缩点,对于点双之间,显然不存在简单环,即每一个简单环一定在一个点双内部,换言之即每一个点双可以独立的考虑,然后将结果相乘 (对于点双之间的边任意染色,即若有$s$条边,还会有$k^{s}$的 ...

  5. Redis | 第一部分:数据结构与对象 中篇《Redis设计与实现》

    目录 前言 1. 跳跃表 1.1 跳跃表与其节点的定义 1.2 跳跃表的API 2. 整数集合 2.1 整数集合的实现 2.2 整数集合的类型升级 2.3 整数集合的API 3. 压缩列表 3.1 压 ...

  6. GWAS与GS模型介绍与比较

    目录 1.GWAS模型 1.1卡方检验 1.2 相关性系数的t检验 1.3 一般线性模型GLM 1.4 混合线性模型MLM 1.5 压缩混合线性模型CMLM 1.6 SUPER 1.7 FarmCPU ...

  7. [linux] 大批量删除任务

    一不小心投了巨多任务,或者投递的资源不合理时,想批量杀掉这些任务. kill的方法就不说了,我这里用qdel的方法. 用了这么一条命令: qstat |sed '1,2d' |awk -F' ' '{ ...

  8. 基于MS SQL Server的数据库学习安排

    序号 分类 学习内容 目标/要求 方式 学时 考核 参考资料 1 基础知识 数据库理论 理解数据库基本理论 面授 1 能阐述元素.数据记录.数据表.数据库的基本概念T-SQL语法要求 https:// ...

  9. EXCEL——排序函数RANK,6种花式使用技巧

    我们在实际工作中,常常把RANK函数用于对一列数据的基本排序,即从大到小的排序方法,那你还知道它的其他什么用法吗? 今天就给大家系统的分享下RANK函数的用法,分享的内容主要为以下这6种技巧. 1.升 ...

  10. 使用flock命令查看nas存储是否支持文件锁

    上锁 文件锁有两种 shared lock 共享锁 exclusive lock 排他锁 当文件被上了共享锁之后,其他进程可以继续为此文件加共享锁,但此文件不能被加排他锁,此文件会有一个共享锁计数,加 ...