数组操作基本函数介绍:值、键名获取及相关检索方法
php数组操作方法

数组可以在一个单独的变量名里存储一个或者多个值。下面小编为大家整理了php数组的操作方法。一起来学习吧!
一、数组操作的基本函数
数组的键名和值
array_values($arr);获得数组的值
array_keys($arr);获得数组的键名
将数组中的值与键名进行互换,若存在重复情况,前面的会被后面的覆盖
在数组里检索,检索的内容是apple
在数组中检索apple ,若存在则返回键名
检查给定的键名“apple”在数组中是否存在
isset($arr[apple]):检查给定的键名在数组中是否存在 。
数组的内部指针
current($arr);返回数组中的当前单元
pos($arr);返回数组中的当前单元
key($arr);返回数组中当前单元的键名
prev($arr);将数组中的内部指针倒回一位
next($arr);将数组中的内部指针向前移动一位
end($arr);将数组中的内部指针指向最后一个单元
reset($arr;将数组中的内部指针指向第一个单元
将返回数组当前元素的一个键名/值的构造数组,会使数组指针向前移动一位
获得数组当前元素的键名,获得数组当前元素的值,将其分别赋值给变量$key和$value 。
数组和变量之间的转换
extract($arr) 用于将数组中的元素转换成变量,导入到当前文件中,其键名会被当作变量名,值会作为变量值。
注:第二个参数十分重要,能够参照手册来使用,使用方法为 echo $a;
使用给定的变量名,创建一个数组,执行compact(var1,var2,var3)
二、数组的分段和填充
数组的分段
array_slice($arr,0,3),能够取出数组中的一段,这个函数会忽略键名。
array_splice($arr,0,3,array("black","maroon"))这个操作,能够取出数组中的一段,它与上个函数不一样的地方在于,返回的序列会从原数组中被删除。
分割多个数组
array_chunk($arr,3,TRUE) 能够把一个数组划分成多个,TRUE 的作用是保留原数组的键名
数组的填充
将一个数组进行填补,使其达到指定的长度,使用的是array_pad函数,参数为数组、5、'x' 。
三、数组与栈
该操作返回入栈元素的个数 。
把数组栈的最后一个元素弹出,也就是进行出栈操作,使用的是array_pop($arr);
四、数组与列队
数组中的第一个元素被移出,该元素作为结果返回,数组长度减1,其他元素向前移动一位,数字键名改为从零计数,文字键名不变。
在数组的开头插入一个或多个元素,使用的操作是array_unshift($arr,"a",array(1,2))
五、回调函数
使用用户函数对数组中的每个成员进行处理,将第三个参数传递给回调函数function,具体操作为调用array_walk函数,该函数的参数依次为数组、函数名、传递给回调函数的参数 。
array_mpa("function",$arr1,$arr2)能够进行处理,处理的对象是多个数组,当使用两个或更多数组时,这些数组的长度应当相同。
使用回调函数过滤数组中的每个元素,若回调函数为TRUE,数组的当前元素会被包含在返回的结果数组中,且数组的键名保留不变
将array_reduce($arr,"function","*")进行转化,转化为单值函数,其中*是数组的第一个值。
六、数组的排序
通过元素值对数组排序
对数组$arr进行排序,按照由小到大的顺序,忽略键名,第二个参数决定按什么方式排序。
对数组进行排序,使其按照由大到小的顺序排列,此为忽略键名的数组排序,第二个参数用于指定按什么方式排序。
使用用户自定义的比较函数对数组中的值进行排序,此函数中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个,这是忽略键名的数组排序
对数组进行排序,按照由小到大的顺序,保留键名,第二个参数决定按什么方式排序。
将数组$arr按照由大到小的顺序进行排序,第二个参数用于指定按什么方式排序,这是一种保留键名的数组排序
使用用户自定义的比较函数对数组中的值进行排序,该比较函数中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个,这是保留键名的数组排序
通过键名对数组排序
ksort($arr);按照键名正序排序
krsort($arr);按照键名逆序排序
使用用户自定义的比较函数对数组中的键名进行排序,该比较函数中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个
自然排序法排序
natsort($arr);自然排序(忽略键名)
对数组$arr进行自然排序,该排序忽略大小写,忽略键名。
七、数组的计算
数组元素的求和
对数组内部的所有元素,进行求和运算
数组的合并
合并两个或多个数组,对于相同的字符串键名,后面的会覆盖前面的,对于相同的数字键名,后面的不会做覆盖操作,而是附加到后面
“+”$arr1+$arr2;对于相同的键名只保留后一个
进行递归合并操作,即array_merge_recursive($arr1,$arr2),若数组中有相同的字符串键名,这些值会被合并到一个数组中,若一个值本身是数组,会按相应键名合并为另一个数组,当数组有相同数组键名时,后一个值不会覆盖原来的值,而是附加到后面
数组的差集
array_diff函数,将$arr1与$arr2作为参数传入,返回差集结果数组。
array_diff_assoc($arr1,$arr2,$arr3)返回差集结果数组,此数组的键名也会进行比较。
数组的交集
array_intersect函数,将$arr1与$arr2作为参数传入,该函数会返回交集结果数组。
array_intersect_assoc($arr1,$arr2),该函数返回交集结果数组,并且键名也会进行比较。
八、其他的数组函数
range(0,12);创建一个包含指定范围单元的数组
使用array_unique函数,移除数组中的重复值,新数组会保留原始键名 。
返回一个单元顺序与原数组相反的数组,此操作通过array_reverse($arr,TRUE)实现,若第二个参数为TRUE则保留原来的键名。
将随机种子触发器设置为,以微秒时间乘以10000000的结果作为浮点数,再以此结果作为参数调用srand函数 。
从数组中随机取出一个或多个元素,使用的是array_rand函数,参数为数组变量$arr以及要取出的元素个数2 。
shuffle($arr);将数组的顺序打乱
本类函数允许通过多种方法来操作数组,本类函数允许通过多种方法与数组交互。数组的本质是储存一组变量,数组的本质是管理一组变量,数组的本质是操作一组变量。
PHP支持一维数组,也支持多维数组,数组可以由用户创建,也可以由另一个函数创建,有一些特定的数据库处理函数,能从数据库查询中生成数组,还有一些函数会返回数组。
array_change_key_case这个函数,返回的是一个数组,该数组的字符串键名全为小写,或者全为大写。
array_chunk — 将一个数组分割成多个
创建一个数组,将一个数组的值用作其键名,把另一个数组的值当作其值,这就是array_combine的作用 。
array_count_values用于统计数组中所有值出现的次数
array_diff_assoc用于计算数组的差集,它会进行索引检查 。
array_diff_key用于通过键名比较来计算数组的差集。
array_diff_uassoc用于计算数组的差集,通过用户提供的回调函数来做索引检查。
array_diff_ukey用于计算数组的差集,通过回调函数对键名进行比较 。
array_diff — 计算数组的差集
用指定的键,用值填充数组,这就是array_fill_keys函数的作用 。
array_fill — 用给定的值填充数组
array_filter — 用回调函数过滤数组中的单元
array_flip — 交换数组中的键和值
array_intersect_assoc用于计算数组的交集,并且会进行索引检查 。
使用键名比较,计算数组的交集,这一操作由 array_intersect_key 来完成 。
array_intersect_uassoc用于计算数组的交集,它带有索引检查,会使用回调函数来比较索引 。
array_intersect_ukey,它通过用回调函数比较键名,进而计算数组的交集 。
array_intersect — 计算数组的交集
检查给定的键名是否存在于数组中,检查给定的索引是否存在于数组中,这一操作可通过array_key_exists实现
array_keys — 返回数组中所有的键名
array_map — 将回调函数作用到给定数组的单元上
array_merge_recursive,它会递归地进行合并操作,将一个或多个数组合并起来 。
array_merge — 合并一个或多个数组
array_multisort,用于对多个数组进行排序,也可用于对多维数组进行排序 。
array_pad — 用值将数组填补到指定长度
array_pop — 将数组最后一个单元弹出(出栈)
array_product — 计算数组中所有值的乘积
将一个或多个单元压入数组的末尾,这一操作被称为入栈,而实现此操作的函数是array_push 。
array_rand — 从数组中随机取出一个或多个单元
array_reduce,它是一种函数,用回调函数来迭代数组,最终将数组简化为单一的值 。
array_reverse — 返回一个单元顺序相反的数组
array_search用于在数组中搜索给定的值,若搜索成功,它会返回相应的键名 。
array_shift — 将数组开头的单元移出数组
array_slice — 从数组中取出一段
array_splice,它能够去掉数组中的一部分,还能用其它值将其取代 。
array_sum — 计算数组中所有值的和
array_udiff_assoc,用于计算数组的差集,带有索引检查,通过回调函数来比较数据 。
array_udiff_uassoc用于计算数组的差集,这种计算带有索引检查,并且会使用回调函数来比较数据和索引 。
array_udiff用于计算数组的差集,通过使用回调函数来比较数据 。
array_uintersect_assoc用于计算数组的交集,会进行索引检查,通过回调函数来比较数据。
array_uintersect_uassoc用于计算数组的交集,会进行索引检查,通过回调函数来比较数据和索引 。
array_uintersect用于计算数组的交集,它通过回调函数来比较数据。
array_unique — 移除数组中重复的值
在数组开头,插入一个或多个单元,这就是array_unshift的作用
array_values — 返回数组中所有的值
array_walk_recursive,它会对数组中的每个成员进行操作,这种操作是递归地应用用户函数 。
array_walk — 对数组中的每个成员应用用户函数
array — 新建一个数组
arsort — 对数组进行逆向排序并保持索引关系
asort — 对数组进行排序并保持索引关系
compact — 建立一个数组,包括变量名和它们的值
count — 计算数组中的单元数目或对象中的属性个数
current — 返回数组中的当前单元
返回数组中当前的键/值对,将数组指针向前移动一步
end — 将数组的内部指针指向最后一个单元
extract — 从数组中将变量导入到当前的符号表
in_array — 检查数组中是否存在某个值
key — 从关联数组中取得键名
krsort — 对数组按照键名逆向排序
ksort — 对数组按照键名排序
list — 把数组中的值赋给一些变量
natcasesort是一种算法,它能对数组进行排序,采用的是“自然排序”算法,且不区分大小写字母。
natsort — 用“自然排序”算法对数组排序
next — 将数组中的内部指针向前移动一位
pos — current() 的别名
prev — 将数组的内部指针倒回一位
range — 建立一个包含指定范围单元的数组
reset — 将数组的内部指针指向第一个单元
rsort — 对数组逆向排序
shuffle — 将数组打乱
sizeof — count() 的别名
sort — 对数组排序
uasort用于对数组中的值进行排序,使用的是用户自定义的比较函数,排序后保持索引关联。
使用用户自定义的比较函数,对数组中的键名进行排序,这个操作叫做uksort
使用用户自定义的比较函数,对数组中的值进行排序,这个函数名为usort 。