首页 > 编程知识 正文

php之数组函数归类,php数组有哪几种类型

时间:2023-12-27 22:27:13 阅读:325693 作者:NTVB

本文目录一览:

php中数组的分类有哪两种?

1、索引数组

有两种创建索引数组的方法:

索引是自动分配的(索引从 0 开始):

$cars=array("porsche","BMW","Volvo");

2、关联数组

关联数组是使用您分配给数组的指定键的数组。

有两种创建关联数组的方法:

$age=array("Bill"="35","Steve"="37","Elon"="43");

扩展资料

实用函数——

有相当多的实用函数作用于数组,参见数组函数一节。

注: unset() 函数允许取消一个数组中的键名。要注意数组将不会重建索引。

?php

$a = array( 1 = 'one', 2 = 'two', 3 = 'three' );

unset( $a[2] );

/* 将产生一个数组,定义为

$a = array( 1='one', 3='three');

而不是

$a = array( 1 = 'one', 2 = 'three');

*/

$b = array_values($a);

// Now $b is array(0 = 'one', 1 ='three')

?

foreach 控制结构是专门用于数组的。它提供了一个简单的方法来遍历数组。

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 数组 函数

$newarray = array();

foreach ($array as $varray)

{

foreach ($varray as $k = $v)

{

if(($k == '性别' $v == '女') || ($k == '年龄' $v 40))

$newarray[] = $varray;

}

}

print_r($newarray);

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(): 根据键,以降序对关联数组进行排序

资料参考:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。