首页 > 代码库 > 数组函数

数组函数

数组常用的函数

count()  计算并返回数组中的元素的个数或者对象中的属性的个数!另外,count还有第二个参数,默认为0false,如果是1true,则支持递归统计

range()  array range ( mixed $start , mixed $limit [, number $step = 1 ] )  建立一个包含指定范围单元的数组。

array_merge()  array array_merge ( array $array1 [, array $... ] )

array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组

如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面

如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。

array_merge本来是用来连接两个或多个数组,但是也有一种特殊的情况,就是里面的参数只有一个

array_rand()  mixed array_rand ( array $input [, int $num_req = 1 ] )

作用是:随机抽取数组内的几个元素的键!并返回一个索引数组!需要两个参数:第一个是一个数组名,第二个抽取的个数

shuffle()   bool shuffle ( array &$array )  作用是打乱一个数组,而且是直接在原数组上进行打乱!而且会重新生成索引下标!

案例:随机出现4个验证码

技术分享

输出结果:

技术分享技术分享技术分享

max() 和 min()      获得数组内的最大值和最小值!

array_keys()     获取所有元素的键,返回一个索引数组!

array_values()    获取所有元素的值,返回一个索引数组

array_combine()  array array_combine ( array $keys , array $values )  返回一个 array,用来自 keys 数组的值作为键名,来自 values 数组的值作为相应的值。

有两个参数:都是数组,拿第一个数组的作为新数组的,第二个数组的作为新数组的重新组合成一个新数组!  要求:两个数组元素的个数要相同!

array_flip()  array array_flip ( array $trans)  交换数组的键和值!

in_array()      判断一个数据是否是某个数组里面元素的值!返回一个布尔值!  需要两个参数:第一个是某个具体的数据,第二个是一个数组名

array_key_exists()  判断一个数组内是否存在某个键,也返回一个布尔值,  也需要两个参数:第一个是具体的数据,第二个是一个数组名

array_search()    作用:搜索数组内的某个元素的值,并返回其下标值!  至少需要两个参数:第一个参数是一个具体的值第二个参数是一个数组名

in_array的区别in_array只是判断是否存在,而array_search判断的结果如果存在,则返回其下标值

array_chunk()  arrayarray_chunk ( array $input , int $size [, bool $preserve_keys = false ] )

将一个数组分割成多个数组,其中每个数组的单元数目由 size 决定。最后一个数组的单元数目可能会少于 size 个。

implode()   作用:将一个数组元素的所有的值,利用一个指定的分隔符连接成一个字符串!

需要两个参数:第一个是分割符,这里可以省略,如果省略,那就是没有分隔符第二个是一个数组名

explode()    作用:将一个字符串,利用其中的分隔符,将其分割成多个部分,形成一个数组!  需要两个参数:第一个参数是一个分隔符第二个参数是一个字符串!

extrac()    将数组中的每一个元素都变成一个变量,其中变量的名字就是数组元素的键,变量的值就是数组元素的值

常见的是,可以将一些数据放到一个数组内,然后作为函数的参数传递到一个函数内,然后在函数内把这个数组extract掉,从而产生了需要的变量!

compact()    利用多个变量,形成一个数组,很显然,数组元素的键就是变量的名字,数组元素的值就是变量的值!

回调函数

概念  所谓的回调函数(callbackcallable),就是指用户自已定义一个函数(也可以是系统函数),然后由PHP负责调用,不需要手动调用

array_map()    作用:对数组中的每一个元素,都由系统调用某个函数

模拟数据结构  数据结构往往是通过数学模型来建立的!

栈:先进后出,后进先出  比如:刷碗,电梯

队列:先进先出,后进后出 比如:排队

栈模拟  如果数据是从数组的尾部进栈,也只能从尾部出栈,  如果数据是从数组的首部进栈,也只能从首部出栈

array_push()    将一个或多个数据压入数组的尾部!

array_pop()    将数组的最后一个数据弹出

array_unshift()  从数组的前面加入数据

array_shift()    从数组的前面弹出数据

例如:

技术分享

输出结果:

技术分享

排序函数

sort()    对数组中的元素进行升序排序,也就是从低到高!  排序之后,会丢失原数组的键,重新生成一个索引数组!

asort()   也是升序排序,只是排序后会保留以前的键值对

rsort()   对数组元素的值进行降序排序,也就是从高到低  排序之后会重新生成一个索引数组!

arsort()   也是降序排序,只是会保留以前的键值对!

例如:

技术分享

输出结果:

技术分享

 

数组函数