1 数据操作基本函数
array_values($arr) 获取数组值
array_keys($arr) 获取数组键值
array_flip($arr) 值与键进行互换(用于去重,有重复前面被后面覆盖)
is_array($val,$arr) 判断是否在数组中
array_search($val,$arr) 在数组中检索指定值,返回键名
array_key_exists($val,$arr) 检索指定键值是否存在数组中
isset($arr[$val]) 判断指定键值是否存在

 

1 explode($sep, $str) 将字符串通过分隔符转化为数组

2 strpos() 函数查找字符串在另一字符串中第一次出现的位置。
3 array_pop() 函数删除数组中的最后一个元素。 返回数组的最后一个值。如果数组是空的,或者非数组,将返回 NULL。
4 array_shift() 函数删除数组中第一个元素,并返回被删除元素的值。
5 array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。
6 array_diff() 函数返回两个数组的差集数组【 可用一个或任意多个数组与第一个数组进行比较】
7 array_reverse 函数——颠倒数组元素顺序 【数组顺序颠倒】

数组去重及其他功能数组
array_unique($arr); 【移除数组中重复的值,新的数组中会保留原始的键名】
array_reverse($arr,TRUE); 【数组进行倒序排序,返回一个单元顺序与原数组相反的数组,如果第二个参数为TRUE保留原来的键名】
shuffle($arr) 【打乱数组顺序】
array_rand($arr) 【函数从数组中随机选出一个或多个元素,并返回。】
array_combine($arrk,$arrv) 【生成数组,前数组为键名,后数组为键值】

数组的差集
array_diff($arr1,$arr2); 返回差集结果数组
array_diff_assoc($arr1,$arr2,$arr3); 返回差集结果数组,键名也做比较

数组的交集
array_intersect($arr1,$arr2) 返回数组的交集
array_intersect_assoc($arr1,$arr2) 返回交集结果,键名做比较

数组计算
求和
array_sum($arr) 数组值进行相加
合并数组
array_merge($arr1,$arr2) 【合并两个数组,如果键值重复,后面则覆盖前面的,注:如果两个数组中,有一个是数字索引,那么键值会重新排序】
$arr1+$arr2 【合并两数组,如果键值出现重复,以前面值覆盖后面值】
array_merge_recursive($arr1,$arr2) 【合并两数组,如何键值重复,在键值重复的数组将生成另外数组,即一维数组转为二维数组】

数组分段
array_slice($arr,0,3) 取出数组中的一段数组,忽略键值
array_splice($arr,0,3,array('black','maroon') 从数组中移除元素,并用新元素取代它

分割多个数组
array_chunk($arr,3,true) 把数组分割为带有3个元素的数组,并保留键值

数组与栈
array_push($arr,"apple","pear"); 将一个或多个元素压入数组栈的末尾(入栈),返回入栈元素的个数
array_pop($arr); 将数组栈的最后一个元素弹出(出栈),返回元素
队列
array_shift($arr); 将数组的首个元素弹出,并返回被弹出的元素
array_unshift($arr,"a",array(1,2));在数组的开头插入一个或多个元素

 

回调函数
array_walk($arr,'function','words');使用用户函数对数组中的每个成员进行处理(第三个参数传递给回调函数function)
array_filter($arr,"function");使用回调函数过滤数组中的每个元素,如果回调函数为TRUE,数组的当前元素会被包含在返回的结果数组中,数组的键名保留不变

 

四 数组:
1)数据输出
list()=array() 将数组分解为单个变量
range(1,31) 返回一个整数范围数组
【迭代输出数组】
reset($array)
while(list($key,$value) = each($array)){}

2)方法回调
array_map('fun',$words) 使用函数遍历处理元素(使用值 进行操作)
array_walk($arr,'fun'); 使用方法遍历元素(使用引用值进行操作)【大数据处理有优势】
array_filter($arr,'fun') 用回调函数处理数组中的各个元素 【用于过滤元素】

3)数组处理
array_splice($arr,0,2,$re_arr) 删除指定长度的数组,并替换
array_pad($arr,5,'str') 扩展数组至5个元素
array_merge() 数组追加 $arr1+$arr2 = $arr1
array_flip() 数组键值互换 【高级】
【array_flip是反转数组键和值的函数,他有个特性就是如果数组中有二个值是一样的,那么反转后会保留最后一个键和值.利用这个特性我们用他来间接的实现数组的去重】
array_unique -- 移除数组中重复的值 【高级】
【注意键名保留不变。array_unique()先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的 array中同一个值的第一个出现的键名会被保留。】
array_reverse() 倒序数组
shuffle($arr) 打乱随机排序

4)数组查找,排序
array_search() 查找数组元素并返回键值
usort() 使用自定义的函数排序

5)数组的交,并,差集
获取两数组并集 array_unique($array_merge($a,$b))【数值并集】
求数值间的交集 array_intersect($a,$b)
求数组的差集 array_diff($a,$b);简单差集{返回a中与b的差集}
求数组的对称差集 array_merge(array_diff($a,$b),array_merge($b,$a)) 【a->b与b->a 差集的合集】
忽略大小的简单差集 array_diff(array_map('strtolower',$old),array_map('strtolower',$new));

 

php 数组函数
array_change_key_case -- 返回字符串键名全为小写或大写的数组
array_chunk -- 将一个数组分割成多个
array_combine -- 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
array_count_values -- 统计数组中所有的值出现的次数
array_diff_assoc -- 带索引检查计算数组的差集
array_diff_uassoc -- Computes the difference of arrays with additional index check which is performed by a user supplied callback function.
array_diff -- 计算数组的差集
array_fill -- 用给定的值填充数组
array_filter -- 用回调函数过滤数组中的单元
array_flip -- 交换数组中的键和值
array_intersect_assoc -- 带索引检查计算数组的交集
array_intersect -- 计算数组的交集
array_key_exists -- 检查给定的键名或索引是否存在于数组中
array_keys -- 返回数组中所有的键名
array_map -- 将回调函数作用到给定数组的单元上
array_merge_recursive -- 递归地合并两个或多个数组
array_merge -- 合并两个或多个数组
array_multisort -- 对多个数组或多维数组进行排序
array_pad -- 用值将数组填补到指定长度
array_pop -- 将数组最后一个单元弹出(出栈)
array_push -- 将一个或多个单元压入数组的末尾(入栈)
array_rand -- 从数组中随机取出一个或多个单元
array_reduce -- 用回调函数迭代地将数组简化为单一的值
array_reverse -- 返回一个单元顺序相反的数组
array_search -- 在数组中搜索给定的值,如果成功则返回相应的键名
array_shift -- 将数组开头的单元移出数组
array_slice -- 从数组中取出一段
array_splice -- 把数组中的一部分去掉并用其它值取代
array_sum -- 计算数组中所有值的和
array_udiff_assoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function.
array_udiff_uassoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function. The index check is done by a callback function also
array_udiff -- Computes the difference of arrays by using a callback function for data comparison.
array_unique -- 移除数组中重复的值
array_unshift -- 在数组开头插入一个或多个单元
array_values -- 返回数组中所有的值
array_walk -- 对数组中的每个成员应用用户函数
array -- 新建一个数组
arsort -- 对数组进行逆向排序并保持索引关系
asort -- 对数组进行排序并保持索引关系
compact -- 建立一个数组,包括变量名和它们的值
count -- 统计变量中的单元数目
current -- 返回数组中的当前单元
each -- 返回数组中当前的键/值对并将数组指针向前移动一步
end -- 将数组的内部指针指向最后一个单元
extract -- 从数组中将变量导入到当前的符号表
in_array -- 检查数组中是否存在某个值
key -- 从结合数组中取得键名
krsort -- 对数组按照键名逆向排序
ksort -- 对数组按照键名排序
list -- 把数组中的值赋给一些变量
natcasesort -- 用“自然排序”算法对数组进行不区分大小写字母的排序
natsort -- 用“自然排序”算法对数组排序
next -- 将数组中的内部指针向前移动一位
pos -- 得到数组当前的单元
prev -- 将数组的内部指针倒回一位
range -- 建立一个包含指定范围单元的数组
reset -- 将数组的内部指针指向第一个单元
rsort -- 对数组逆向排序
shuffle -- 将数组打乱
sizeof -- count() 的别名
sort -- 对数组排序
uasort -- 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
uksort -- 使用用户自定义的比较函数对数组中的键名进行排序
usort -- 使用用户自定义的比较函数对数组中的值进行排序

 

 

排序专题
 
数值排序
sort($arr);由小到大的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
asort($arr);由小到大的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
rsort($arr);由大到小的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
arsort($arr);由大到小的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
usort($arr,"function");使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)忽略键名的数组排序
uasort($arr,"function");使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)保留键名的数组排序
 
键名排序
ksort($arr);按照键名正序排序【标准排序】
krsort($arr);按照键名逆序排序
uksort($arr,"function");使用用户自定义的比较函数对数组中的键名进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)
 
自然排序法排序【自然排序是指按照数值大小,标准排序是指以单个字符串进行排序】
natsort($arr);自然排序(忽略键名)
natcasesort($arr);自然排序(忽略大小写,忽略键名)