科技知识动态:php数组(Array函数)的处理

导读跟大家讲解下有关php数组(Array函数)的处理,相信小伙伴们对这个话题应该也很关注吧,现在就为小伙伴们说说php数组(Array函数)的处理,

跟大家讲解下有关php数组(Array函数)的处理,相信小伙伴们对这个话题应该也很关注吧,现在就为小伙伴们说说php数组(Array函数)的处理,小编也收集到了有关php数组(Array函数)的处理的相关资料,希望大家看到了会喜欢。

PHP Array 是什么?

数组就是一组数据的集合,把一系列数据组织起来,形成一个可操作的整体。PHP 中的数组较为复杂,但比其他许多高级语言中的数组更为灵活。

数组 array 是一组有序的变量,其中每个值被称为一个元素。每个元素由一个特殊的标识符来区分,这个标识符称为键(也称为下标)。

数组中的每个实体都包含两项,分别是键(key)和值(value)。可以通过键值来获取相应的数组元素,这些键可以是数值键,也可以是关联键。如果说变量是存储单个值的容器,那么数组就是存储多个值的容器。

PHP 数组比其他高级语言中的数组更加灵活,不但支持以数字为键名的索引数组,而且支持以字符串或字符串、数字混合为键名的关联数组。而在其他高级语言中,如 Java 或者 C++ 等语言的数组,只支持数字索引数组。

PHP 数组的结构如下图所示:

Snipaste_2020-07-31_17-36-14.png

在 PHP 中,有三种数组类型:

索引数组:带有数字索引的数组

关联数组:带有指定键的数组

多维数组:包含一个或多个数组的数组

推荐视频教程:

1、《PHP函数之array数组函数视频讲解》

2、《PHP基本语法(玉女心经版)》

3、《PHP字符串处理(玉女心经版)》

推荐学习手册:《php完全自学手册》

PHP Array 使用

PHP数组的定义

[1, 5, 1.1, 'abc' true, false] //可以存储任何数据,此时为'默认下标',[2=>1, 5=>5, 3=>1.1, 7=>'abc' 0=>true]//下标可以任意设定(无需顺序,无需连续)[2=>1, 5, 1=>1.1, 'abc' 0=>true]//可以加下标,也可以不加(默认下标),下标分别是:2,3,1,4,0//默认下标规则:前面已经用过的最大数字下标+1[2=>1, 'dd'=>5, 1=>1.1, 'abc' 0=>true]//混合下标,同样遵循默认下标规则[-2=>1, 'dd'=>5, 1.1, 'abc' true]; //负数下标不算在整数下标中,而只当作字符下标//则最好3项的下标是:0, 1, 2[2.7=>1, 'dd'=>5, 1=>1.1, 'abc' 0=>true]//浮点数下标为自动转换为整数,且直接抹掉小数['2.7' =>1, 'dd'=>5, '11'=>1.1, 'abc' true]//纯数字字符串下标,当作数字看待,//则此时下标为:2, 'dd', 11, 12, 13[2=>1, 'dd'=>5, true=>1.1, 'abc' false=>true]//布尔值当下标,则true为1,false为0;[2=>1, 'dd'=>5, 2=>1.1, 'abc' true]//如果下标跟前面的重复,则单纯覆盖前面同名下标的值

关联数组

$array = [ 'name' => 'zhaosi', 'age' => 20, 'sex' => '女'];

多维数组

$array = [ [ 'name' => 'xiaoming', 'age' => 17, 'sex' => '男' ], [ 'name' => 'wanghua', 'age' => 16, 'sex' => '女' ], [ 'name' => 'zhaosi', 'age' => 20, 'sex' => '女' ], [ 'name' => 'zhangsan', 'age' => 22, 'sex' => '男' ], [ 'name' => 'wangli', 'age' => 12, 'sex' => '女' ], [ 'name' => 'zhuhua', 'age' => 14, 'sex' => '男' ]];

数组历遍

$array = [ [ 'name' => 'xiaoming', 'age' => 17, 'sex' => '男' ], [ 'name' => 'wanghua', 'age' => 16, 'sex' => '女' ], [ 'name' => 'zhaosi', 'age' => 20, 'sex' => '女' ], [ 'name' => 'zhangsan', 'age' => 22, 'sex' => '男' ], [ 'name' => 'wangli', 'age' => 12, 'sex' => '女' ], [ 'name' => 'zhuhua', 'age' => 14, 'sex' => '男' ]];foreach ($array as $key => $value) { echo $value['name']; echo $value['age']; echo $value['sex'];}

输出结果

xiaoming17男wanghua16女zhaosi20女zhangsan22男wangli12女zhuhua14男

常用PHP数组函数

1、count() 函数的作用是计算数组中的元素数目或对象中属性个数

int count(mixed var[,int mode])

第一个参数是必须的,传人个计算的数组或对象。第二个参数是可选,规定函数的模式是否递归地计算多维数组中数组的元素个数,可能的值是0 或1,0为默认值,不检测多维 数组,为 1则检测多维数组

示例:

$a = array( "a", "b", "c", "d");echo count($a); //输出个数4$b = array( "a" => array( 1, 2, 3 ) , "b" => array( 4, 5, 6 ));echo count($b, 1); //输出 8echo count($b); //输出 2y([b]=>2 [d]=>4)

2、array_count_values() 函数用于统计数组中所有值出现的次数,该函数只有一个参数

array array_count_values(array input)

参数规定输入一个数组,返回一个数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数

示例:

$array=array(1,"a",1,"b","a");$newarray=array_count_values($array);print_r($newarray);//输出array([1]=>2 [a]=>2 [b]=>1)

3、array_unique()函数用于删除数组中重复的值,并返回没有重复值的新数组

array array_unique(array array)

参数需要接受一个数组,当数组中几个元素的值相等时,只保留第一个元素,其他元素被删除,并且返回的新数组中键名不变,array_unique()先将值作为字符串排序,然后对每个值只保留第一遇到的键名,接着忽略所有后面的键名

示例:

$a=array("a"=>1,"b"=>2,"c"=>1);print_r(array_unique($a));//输出 array([a]=>1 [b]=>2)

4、array_filter() 函数用回调函数过滤数组中元素,返回按用户自定义函数过滤后的数组

array array_filter(array input [,callback callback])

参数:第一参数是必选项,要求输入一个被过滤的数组,第二参数可选,将用户自定义的函数名以字符串形式传入,如果自定义过滤函数返回true,则被操作的数组的当前值就会被包含在返回的结果数组中,并将结果组成一个新数组,如果原数组是一个关联数组,则键名保持不变。

示例:

function myFun($var) { if ($var % 2 == 0) { return true; }}$array = array( "a" => 1, "b" => 2, "c" => 3, "d" => 4);print_r($array, "myFun"); //输出 array([b]=>2 [d]=>4)

5、array_walk()函数对数组中的每个元素应用回调函数处理,如果成功返回true,否则返回false

bool array_walk( array &array,callback funcname [,mixed userdata])

第一个参数是必须,要求输入一个被指定的回调函数处理的数组,第二个参数传人用户定义的回调函数,用于操作传人第一参数的数组

示例:

function myFunc1($value, $key) { echo "key=$key value=$value";}$a = ["a" => "lin1", "b" => "lin2", "c" => "lin3"];array_walk($a, "myFunc1");function myFunc2($value, $key, $str) { echo "$key $value";}array_walk($a, "myFunc2");function myFunc3($value, $key) { $value = "lin.su";}array_walk($a, "myFunc3");print_r($a); //$a 是一个引用数组

6、array_map()函数可以处理多个数组,将回调函数作用到给定数组的元素上,返回用户自定义函数作用后数组。

array array_map(callback callback,array arr1[,arry ....])

示例:

function myFunc($v1, $v2) { if ($v1 == $v2) { return "same"; } return "different";}$a = [1, 2, 3];$b = [1, 4, 3];print_r(array_map("myFunc", $a, $b)); //输出 array([0]=>same [1]=>difference [2]=>same)print_r(array_map(null, $a, $b));

输出:

array([0]=>array([0]=>1 [1]=>2 [2]=>3)[1]=>array([0]=>1 [1]=>2 [2]=>3))

PHP 数组函数

函数描述array()创建数组。array_change_key_case()把数组中所有键更改为小写或大写。array_chunk()把一个数组分割为新的数组块。array_column()返回输入数组中某个单一列的值。array_combine()通过合并两个数组来创建一个新数组。array_count_values()用于统计数组中所有值出现的次数。array_diff()比较数组,返回差集(只比较键值)。array_diff_assoc()比较数组,返回差集(比较键名和键值)。array_diff_key()比较数组,返回差集(只比较键名)。array_diff_uassoc()比较数组,返回差集(比较键名和键值,使用用户自定义的键名比较函数)。array_diff_ukey()比较数组,返回差集(只比较键名,使用用户自定义的键名比较函数)。array_fill()用给定的键值填充数组。array_fill_keys()用指定键名的给定键值填充数组。array_filter()用回调函数过滤数组中的元素。array_flip()交换数组中的键和值。array_intersect()比较数组,返回交集(只比较键值)。array_intersect_assoc()比较数组,返回交集(比较键名和键值)。array_intersect_key()比较数组,返回交集(只比较键名)。array_intersect_uassoc()比较数组,返回交集(比较键名和键值,使用用户自定义的键名比较函数)。array_intersect_ukey()比较数组,返回交集(只比较键名,使用用户自定义的键名比较函数)。array_key_exists()检查指定的键名是否存在于数组中。array_keys()返回数组中所有的键名。array_map()把数组中的每个值发送到用户自定义函数,返回新的值。array_merge()把一个或多个数组合并为一个数组。array_merge_recursive()递归地合并一个或多个数组。array_multisort()对多个数组或多维数组进行排序。array_pad()用值将数组填补到指定长度。array_pop()删除数组的最后一个元素(出栈)。array_product()计算数组中所有值的乘积。array_push()将一个或多个元素插入数组的末尾(入栈)。array_rand()返回数组中一个或多个随机的键。array_reduce()通过使用用户自定义函数,以字符串返回数组。array_replace()使用后面数组的值替换第一个数组的值。array_replace_recursive()递归地使用后面数组的值替换第一个数组的值。array_reverse()以相反的顺序返回数组。array_search()搜索数组中给定的值并返回键名。array_shift()删除数组中首个元素,并返回被删除元素的值。array_slice()返回数组中被选定的部分。array_splice()删除并替换数组中指定的元素。array_sum()返回数组中值的和。array_udiff()比较数组,返回差集(只比较值,使用一个用户自定义的键名比较函数)。array_udiff_assoc()比较数组,返回差集(比较键和值,使用内建函数比较键名,使用用户自定义函数比较键值)。array_udiff_uassoc()比较数组,返回差集(比较键和值,使用两个用户自定义的键名比较函数)。array_uintersect()比较数组,返回交集(只比较值,使用一个用户自定义的键名比较函数)。array_uintersect_assoc()比较数组,返回交集(比较键和值,使用内建函数比较键名,使用用户自定义函数比较键值)。array_uintersect_uassoc()比较数组,返回交集(比较键和值,使用两个用户自定义的键名比较函数)。array_unique()删除数组中的重复值。array_unshift()在数组开头插入一个或多个元素。array_values()返回数组中所有的值。array_walk()对数组中的每个成员应用用户函数。array_walk_recursive()对数组中的每个成员递归地应用用户函数。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数组(Array函数)的处理的详细内容,更多请关注php中文网其它相关文章!

来源:php中文网

免责声明:本文由用户上传,如有侵权请联系删除!