php数组(数组的定义、使用、删除数组、数组操作符、数组排序、数组元素查找、数组的常用函数)
什么是数组
数组是一种数据类型,在PHP中广泛应用。
数组是一个可以存储一组或一系列数值的变量。
在PHP中,数组中的元素分为两个部分,分别为键(Key)和值(Value)。
“键”为元素的识别名称,也称为数组下标,“值”为元素的内容。 “键”和“值”之间存在一种对应关系,称为映射。
根据下标的数据类型,可以将数组分为索引数组和关联数组两种类型。
索引数组:
索引数组是指下标为整数的数组。
索引数组的下标从0开始,依次递增。
当需要使用位置来标识数组元素时,可以使用索引数组。
需要注意的是,索引数组的“键”可以自己指定,默认情况下,是从0开始的。
关联数组 :
关联数组是指下标为字符串的数组。 通常情况下,关联数组元素的键和值之间有一定的业务逻辑关系,因此,通常使用关联数组存储一系列具有逻辑关系的变量。
在PHP中定义一个数组非常简单,既不需要事先声明,也不需要指定数组的大小。
使用赋值方式定义数组
使用array()函数定义数组
在定义数组时,通常有两种方式:一种是直接给数组中的元素赋值,另一种是使用array()函数定义数组。
数组的定义
使用赋值方式定义数组:
使用赋值方式定义数组是最简单的方式。 这种方式实际上就是创建一个数组变量,然后使用赋值运算符直接给变量赋值,其语法格式如下:
$arrayName[key] = value
$arrayName”是数组名。
“key”是数组的下标,其类型可以是整型或字符串。
“value”可以是任意类型的数据。
定义一个索引数组的示例代码如下:
$arr[0] = 123; //整数$arr[1] = "hello"; //字符串$arr[2] = 45.6; //浮点数$arr[3] = true; //布尔值$arr[4] = null; //null
代码中定义了一个索引数组变量$arr。 需要注意的是,如果没有指定“键”(即[]内的键名省略不写),则使用默认键,即“键”从0开始,依次递增。
使用赋值方式定义一个关联数组,示例代码如下:
$arr["id"] = 1;$arr["name"] = "韩某";$arr["address"] = "北京";$arr["email"] = "han@tom.com";
关联数组,数组元素的“键”都是字符串,并且“键”与“值”具有一一对应关系。
例:
";$stu=[ "id"=>1254, "name"=>"刘德华", "mobile"=>"13976507648"];$stu["sex"]="男";print_r($stu);?>
结果图:
使用array()函数定义数组
使用array()函数也可以定义数组,它接收数组的元素作为参数,多个元素之间使用英文逗号分隔,其语法格式如下:
$arrayName = array( key1 => value1, key2 => value2, ...)
如果省略了key部分,则定义的数组默认为索引数组。
使用array()函数定义一个数组,示例代码如下:
$arr = array( 123, "hello", 45.6, true );
在数组$arr中只定义了数组元素的值,省略了“键”的部分,则$arr默认为索引数组,并且“键”从0开始,依次递增。
使用array()函数定义一个关联数组,示例代码如下:
$arr = array( "id"=> 1, "name"=> "韩某", "address"=> "北京", "email"=> "han@tom.com" );
数组的使用
在PHP开发中,经常会使用数组。
由于数组中的键和值是映射关系,并且键是数组元素的唯一标识,所以可以根据元素的键来获取该元素的值。
具体语法格式如下:
$数组名[键名]
除了可以使用方括号([])访问数组元素,还可以使用花括号({})。 例如,$arr[0]和$arr{0}的效果是一样的。
如果要查看整个数组的信息, PHP提供了print_r()和var_dump()函数, 专门用于输出数组中的所有元素。
其中,print_r()函数可以按照一定格式显示数组中所有元素的键和值。
var_dump()函数与print_r()函数的用法类似,但是var_dump()函数的功能更加强大,它可以在打印数组元素的同时打印元素中值的数据类型。
删除数组
在实际开发中,有时需要删除数组中的某些元素。
在PHP中提供了unset()函数用于删除数组中的元素。
unset()函数不仅可以删除指定下标的元素还可以删除整个数组。
例:
结果图:
array_splice():
结果图:
array_diff():
结果图:
array_diff_key():
1001, "name"=>"wangsir", "sex"=>"boy", "moblie"=>"17398746054"];$newstu=array_diff_key($stu,["moblie"=>""]);print_r($newstu);?>
结果图:
数组操作符
整型数据可以通过一些运算符进行赋值运算、算术运算、比较运算等操作。
在PHP中,数组这种复合类型的数据也可以进行运算,数组的运算是通过数组操作符实现的。
常见的数组操作运算符如下表所示。
“+”为联合运算符,用于合并数组,如果出现下标相同的元素,则保留第一个数组内的元素。
数组的常见操作
数组在PHP程序中应用非常广泛。在使用数组时,经常需要对数组进行遍历、排序、查找等操作,因此灵活地使用数组对实际开发很重要。
数组遍历
在操作数组时,经常需要依次访问数组中的每个元素,这种操作称为数组的遍历。
在PHP中,通常使用foreach语句实现数组的遍历, 其语法格式有两种,具体如下:
以上两种语法格式都是通过foreach语句来实现对数组的遍历,不同的是,在语法格式一中,只是将当前元素的值赋给$value。而在语法格式二中,将当前元素的键名赋值给$key,值赋值给$value,这样可以同时获取当前元素的键名和值。
数组排序
sort:对数组进行升序排序
rsort:对数组进行降序排序
asort:对数组进行升序排序并保持索引关系
100,"b"=>50,"c"=>200,"d"=>190];asort($a);print_r($a);?>
ksort:按照键名对数组进行升序排序
100,"b"=>50,"c"=>200,"d"=>190];ksort($a);print_r($a);?>
arsort:对数组进行降序排序并保持索引关系
100,"b"=>50,"c"=>200,"d"=>190];arsort($a);print_r($a);?>
krsort:按照键名对数组进行降序排序
100,"b"=>50,"c"=>200,"d"=>190];krsort($a);print_r($a);?>
数组元素查找
在数组中常用的查找元素的方法有顺序查找和二分法查找
array_search():
数组的长度是:".count($score);?>
结果图:
数组的常用函数
PHP中提供许多操作数组的函数,只需要调用这些函数就能够实现数组的查找和排序等功能。
基本函数
在使用数组时,经常会对数组中的元素进行操作。为此PHP提供了一些基本函数,如count()、array_unique()等,通过这些函数可以完成一些常见的功能,
is_array()函数:
is_array()函数的作用是判断一个变量是否是数组,如果是数组,则返回true,否则返回false。
count()函数:
count()函数的作用是用于计算数组中元素的个数。
其声明方式如下:
int count(mixed $var [, int $mode ]);
在上述声明中,count()函数接收两个参数,其中$var参数是必需的,它表示传入的数组对象。
$mode参数是可选参数,默认值为0,如果将该参数设置为1,则count()函数会递归计算多维数组中每个元素的个数。
array_unique()函数:
array_unique()函数的作用是移除数组中的重复元素。
其声明方式如下:
array array_unique(array $array)
例:
结果图:
键值对的相关函数:
在PHP中,数组实质上是由键值对构成的一个集合,因此关于键和值的操作尤为重要。
array_keys():
array_keys()函数同样也是用于获取数组中元素对应的键名。不同的是,array_keys()函数可以返回所有匹配的键名。
其声明方式如下:
array array_keys(array $input[,mixed $search_value[,bool $strict]]);
排序函数
数组排序是通过循环遍历数组中的所有元素,然后通过每两个元素之间的比较从而完成的排序。
实际上,PHP提供了多个排序的函数,可以直接调用。例如:sort()函数、rsort()函数、ksort()函数等。
合并和拆分函数
在操作数组过程中,经常会遇到合并或拆分数组的情况。
为此,PHP提供了array_merge()函数和array_chunk()函数
array_merge()函数:
array_merge()函数的作用是合并一个或多个数组。
其声明方式如下:
array array_merge( array $array1 [, array $... ] );
array_merge()将一个或多个数组的单元合并起来,一个数组中的值附加在另一个数组的后面,返回一个新的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。
如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到数组的后面。
如果数组是数字索引的,则键名会以连续方式重新编排索引。
array_chunk()函数:
函数array_chunk()的作用是将一个数组分割成多个数组。
array array_chunk( array $input , int $size [, bool $preserve_keys ] );
其他函数
array_rand()函数:
array_rand()函数的作用是从数组中随机取出一个或多个元素。
其声明方式如下:
mixed array_rand( array $input [, int $num_req ] );
例:
";}?>
结果图:
array_reverse()函数:
array_reverse()函数的作用是返回一个元素顺序相反的数组。
其声明方式如下:
array array_reverse( array $array [, bool $preserve_keys ] );
array_reverse()接收数组$array作为输入并返回一个元素为相反顺序的新数组,如果$preserve_keys为 true,则保留原来的键名。
来源地址:https://blog.csdn.net/m0_69034993/article/details/127225879
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341