您的位置:

php函数和数组(Php数组函数)

本文目录一览:

PHP面试题2--常用的数组函数

一,数组操作的基本函数

1. 数组的键名与值

    array_values($arr);  获得数组的值

    array_keys($arr); 获得数组的键名

    array_flip($arr); 数组的值与键名互换(如果有重复前面的会被后面的覆盖)

    in_array("apple",$arr); 在数组中检索apple

    array_search("apple",$arr); 在数组中检索apple,如果存在返回键名

    array_key_exists("apple",$arr); 检索给定的键名是否存在数组中

    isset($arr["apple"]); 检索给定的键名是否存在数组中

    array_unique() 删除数组中的重复值

2. 数组的内部指针

    current($arr); 返回数组中的当前单元

    pos($arr); 返回数组中的当前单元

    key($arr); 返回数组中的当前单元的键名

    prev($arr); 将数组中的内部指针倒回一位

    next($arr); 将数组中的内部指针向前移动一位

    end($arr);  将数组中的内部指针指向最后一单元

    reset($arr); 将数组中的内部指针指向第一单元

    each($arr); 将返回数组当前元素的一个键/值的构造数组,并使数组指针向前移动一位

    list($key,$value) = each($arr); 获得数组当前元素的键名和值

3. 数组和变量之间的转换

    extract(array,extract_rules,prefix); 函数从数组中将变量导入到当前符号表。该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量。

    compact(var1,var2...); 创建一个包含变量名和它们的值的数组。任何没有变量名与之对应的字符串都被略过。

二,数组的分段和填充

1. 数组的分段

    array_slice(array,start,length,preserve); 返回数组中的选定部分。如果数组中有字符串键名,返回的数组将保留键名。

    array_splice(array1,start,length,array2); 从数组中移除选定的元素,并用新元素取代它。函数返回被移除元素的数组,如果函数没有移除任何元素(length=0),则替代数组将从start参数的位置插入。不保留替代数组的键名。

2. 数组的分割

    array_chunk(array,size,preserve_keys); 把一个数组分割为新的数组块。

3. 数组的填充

    array_pad(array,size,value); 将指定数量的带有指定值的元素插入到数组。如果将size参数设置为负数,该函数会在原始数组之前插入新的元素。如果size参数小于原始数组的长度,该函数不会删除任何元素。

三,数组与栈

    array_push(array,value1,value2...); 向数组尾部插入一个或多个元素。即使数组有字符串键名,添加的元素将是数字键名。

    array_pop(array); 删除数组的最后一个元素。返回值是数组的最后一个值,即,被删除的元素值。如果数组为空,或者不是一个数组,将返回NULL。

四,数组和队列

    array_shift(array); 用于删除数组中的第一个元素,并返回被删除的元素。如果键名是数字,所有的元素都将获得新的键名,从0开始,并以1递增。

    array_unshift(array,value1,value2,value3...); 用于向数组插入新元素,新数组的值将被插入到数组的开头。数值键名将从0开始,以1递增。字符串键名将保持不变。

五,回调函数

    array_walk(array,myfunction,parameter...); 将数组中的每个元素应用到 用户自定义函数。在函数中,数组的键名和键值是参数。可以通过把用户自定义函数的第一个参数指定为引用:$value,来改变数组元素的值。

    array_map(myfunction,array1,array2,array3...); 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新的值的数组。myfunction可以为null

    array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ); 用回调函数过滤数组中的元素。该函数把输入数组中的每个键值传给回调函数。如果回调函数返回true,则把输入数组中的当前键值返回给结果数组,数组键名保持不变。

    array_reduce(array,myfunction,initial); 函数发送数组中的值到用户自定义函数,并返回一个字符串。如果数组是空的或者初始值未传递,该函数返回null。initial为可选,规定发送到函数处理的第一个值。

六,数组的计算

1. 数组元素的求和

    array_sum(array); 返回数组中的所有值的和

2. 数组的合并

    array_merge(array1,array2,array3...); 用于把一个或多个数组合并成一个数组。如果两个或更多个数组有相同的键名。则最后的数组会覆盖其他数组。如果向函数输入了一个数组,且键名是整数,则该函数会返回带有整数键名的新数组,其键名以0开始进行重新索引。

    array_merge_recursive(array1,array2,array3...); 用于把一个或多个数组合并为一个数组,该函数与array_merge()函数之间的不同是在处理两个或多个数组元素有相同的键名的情况下,array_merge_recursive()不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。如果您仅仅向 array_merge_recursive() 函数输入一个数组,结果与 array_merge() 相同。

3. 数组的差集

    array_diff(array1,array2,array3...); 函数用于比较两个(或更多个)数组的值,并返回差集。该函数比较两个(或更多个)数组的值(key=value中的value),并返回一个差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2或array3等等)中的值。

    array_diff_assoc(array1,array2,array3...); 函数用于比较两个(或更多个)数组的键名和键值,并返回差集。该函数比较两个(或更多个)数组的键名和键值,并返回一个差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的键名和键值。

4. 数组的并集

array_intersect(array1,array2,array3...); 函数用于比较两个(或更多个)数组的键值,并返回交集。该函数比较两个(或更多个)数组的键值,返回一个交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键值。

array_intersect_assoc(array1,array2,array3...); 函数用于比较两个(或更多个)数组的键名和键值,并返回交集。该函数比较两个(或更多个)数组的键名和键值,并返回一个交集数组,该数组包括了所有在被比较的数组(array1)中,同时也在任何其他参数数组(array2 或 array3 等等)中的键名和键值。

七,数值的排序

array_multisort():  对多个数组或多维数组进行排序

sort(): 以升序对数组排序

rsort(): 以降序对数组排序

asort(): 根据值,以升序对关联数组进行排序

ksort(): 根据键,以升序对关联数组进行排序

arsort(): 根据值,以降序对关联数组进行排序

krsort(): 根据键,以降序对关联数组进行排序

资料参考:

用自己的语言说出php中数组的常用函数和用法?

array_filter : 过滤数组中的无效元素,可以使用回调函数过滤

array_map : 使用回调函数依次处理所有元素

implode: 将一维数组转为特定符号隔开的字符串,

explode:  将特定符号隔开的字符串转为一维数组

sort /ksort: 将数组进行升序排序

array_unique: 将数组元素去重

array_values:  取数组的值,重新组成新数组

array_pop: 取数组末尾元素并删除(队列)

array_push:将一个元素插入数组末尾(队列)

array_sum:统计数组元素的和

array_column:将二维数组中的指定KEY取出组成一个一维数组

网页链接

php里说出数组的常用函数及用法?

PHP常用操作数组的函数

变量和数组的转换

compact() 将变量整合成数组

extract() 将数组中的每个值以键的名分解成变量

变量和字符串转换

explode() 以某个子串分解字符串成数组

implode() 将一维数组根据某个符号拼接成字符串

数组与数组之间关系

array_merge() 合并/并集

array_diff() 差集

array_intersect() 交集

数组值的操作

array_pop() 删除(弹出)数组最后一个值

array_push() 向数组中追加一个值

判断数组是否存在数组中

in_array() 判断一个值是否存在数组中

array_key_exists() 判断键是否存在数组中

数组去重

array_unique() 数组去重

获取二维数组中的值的集合

array_column() 获取二维数组中的值的集合

提取数组的键与值

array_values 提取数组的值构成一维数组

array_keys 提取数组的键构成一维数组

返回数组中的随机的键

array_rand() 返回数组中的随机的键

返回数组中值的数量

count() 返回数组中值的和

查询数组中的值

array_search() 查询数组中的值是否存在/in_array()有点相似

排序

sort() 排序有很多种,按键或值升降序

array_multisort() 多维数组排序

分割数组

array_chunk()

php 常用的数组函数都有哪些? 作用是什么?有什么特点? 怎么使用?

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_replace_recursive -- 使用传递的数组递归替换第一个数组的元素

array_replace           -- 使用传递的数组替换第一个数组的元素

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                 -- 返回数组中的当前单元

each                    -- 返回数组中当前的键/值对并将数组指针向前移动一步

end                     -- 将数组的内部指针指向最后一个单元

extract                 -- 从数组中将变量导入到当前的符号表

in_array                -- 检查数组中是否存在某个值

key                     -- 从关联数组中取得键名

krsort                  -- 对数组按照键名逆向排序

ksort                   -- 对数组按照键名排序

list                    -- 把数组中的值赋给一些变量

natcasesort             -- 用“自然排序”算法对数组进行不区分大小写字母的排序

natsort                 -- 用“自然排序”算法对数组排序

next                    -- 将数组中的内部指针向前移动一位

pos                     -- current 的别名

prev                    -- 将数组的内部指针倒回一位

range                   -- 建立一个包含指定范围单元的数组

reset                   -- 将数组的内部指针指向第一个单元

rsort                   -- 对数组逆向排序

shuffle                 -- 将数组打乱

sizeof                  -- count 的别名

sort                    -- 对数组排序

uasort                  -- 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联

uksort                  -- 使用用户自定义的比较函数对数组中的键名进行排序

usort                   -- 使用用户自定义的比较函数对数组中的值进行排序

关于如何使用,那是要根据使用者需求来衡量,不能一言概括

使用语法如下:

?php

    $arr = array('Hello','World!');

    $arr = implode(',',$arr);

    

    echo $arr;

?

结果是:HelloWorld!

如果你想更多的了解php的数组函数,我建议你详细地去看看php手册

php手册官网:

PHP处理数组常用的几个函数

一、数组操作的基本函数

数组的键名和值

array_values($arr); 获得数组的值

array_keys($arr); 获得数组的键名

array_flip($arr); 数组中的值与键名互换(如果有重复前面的会被后面的覆盖)

in_array("apple",$arr); 在数组中检索apple

array_search("apple",$arr); 在数组中检索apple ,如果存在返回键名

array_key_exists("apple",$arr); 检索给定的键名是否存在数组中

isset($arr[apple]): 检索给定的键名是否存在数组中

数组的内部指针

current($arr); 返回数组中的当前单元

pos($arr); 返回数组中的当前单元

key($arr); 返回数组中当前单元的键名

prev($arr); 将数组中的内部指针倒回一位

next($arr); 将数组中的内部指针向前移动一位

end($arr); 将数组中的内部指针指向最后一个单元

reset($arr; 将数组中的内部指针指向第一个单元

each($arr); 将返回数组当前元素的一个键名/值的构造数组,并使数组指针向前移动一位

list($key,$value)=each($arr); 获得数组当前元素的键名和值

数组和变量之间的转换

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($arr,5,'x'); 将一个数组填补到制定长度

三、数组与栈

array_push($arr,"apple","pear"); 将一个或多个元素压入数组栈的末尾(入栈),返回入栈元素的个数

array_pop($arr); 将数组栈的最后一个元素弹出(出栈)

四、数组与列队

array_shift($arr);数组中的第一个元素移出并作为结果返回(数组长度减1,其他元素向前移动一位,数字键名改为从零技术,文字键名不变)

array_unshift($arr,"a",array(1,2));在数组的开头插入一个或多个元素

五、回调函数

array_walk($arr,'function','words'); 使用用户函数对数组中的每个成员进行处理(第三个参数传递给回调函数function)

array_mpa("function",$arr1,$arr2); 可以处理多个数组(当使用两个或更多数组时,他们的长度应该相同)

array_filter($arr,"function"); 使用回调函数过滤数组中的每个元素,如果回调函数为TRUE,数组的当前元素会被包含在返回的结果数组中,数组的键名保留不变

array_reduce($arr,"function","*"); 转化为单值函数(*为数组的第一个值)

六、数组的排序

通过元素值对数组排序

sort($arr); 由小到大的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序

rsort($arr); 由大到小的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序

usort($arr,"function"); 使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)忽略键名的数组排序

asort($arr); 由小到大的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序

arsort($arr); 由大到小的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序

uasort($arr,"function"); 使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)保留键名的数组排序

通过键名对数组排序

ksort($arr); 按照键名正序排序

krsort($arr); 按照键名逆序排序

uksort($arr,"function"); 使用用户自定义的比较函数对数组中的键名进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)

自然排序法排序

natsort($arr); 自然排序(忽略键名)

natcasesort($arr); 自然排序(忽略大小写,忽略键名)

七、数组的计算

数组元素的求和

array_sum($arr); 对数组内部的所有元素做求和运算

数组的合并

array_merge($arr1,$arr2); 合并两个或多个数组(相同的字符串键名,后面的覆盖前面的,相同的数字键名,后面的不会做覆盖操作,而是附加到后面)

“+”$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($arr); 移除数组中重复的值,新的数组中会保留原始的键名

array_reverse($arr,TRUE); 返回一个单元顺序与原数组相反的数组,如果第二个参数为TRUE保留原来的键名

//srand((float)microtime()*10000000); 随机种子触发器

array_rand($arr,2); 从数组中随机取出一个或 多个元素

shuffle($arr); 将数组的顺序打乱

求课吧有很多关于PHP编程方面的教程