什么是数组
数组是一种数据类型,在PHP中广泛应用。
数组是一个可以存储一组或一系列数值的变量。
在PHP中,数组中的元素分为两个部分,分别为键(Key)和值(Value)。
“键”为元素的识别名称,也称为数组下标,“值”为元素的内容。 “键”和“值”之间存在一种对应关系,称为映射。
根据下标的数据类型,可以将数组分为索引数组和关联数组两种类型。
索引数组:
索引数组是指下标为整数的数组。
索引数组的下标从0开始,依次递增。
当需要使用位置来标识数组元素时,可以使用索引数组。
需要注意的是,索引数组的“键”可以自己指定,默认情况下,是从0开始的。
关联数组 :
关联数组是指下标为字符串的数组。 通常情况下,关联数组元素的键和值之间有一定的业务逻辑关系,因此,通常使用关联数组存储一系列具有逻辑关系的变量。
在PHP中定义一个数组非常简单,既不需要事先声明,也不需要指定数组的大小。
1、使用赋值方式定义数组
2、使用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";
关联数组,数组元素的“键”都是字符串,并且“键”与“值”具有一一对应关系。
例:
<?php
echo "<hr>";
$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()函数不仅可以删除指定下标的元素还可以删除整个数组。
例:
<?php
$a=[100,200,300,400,500];
unset($a[2]);
var_dump($a);
?>
结果图:
array_splice():
<?php
$a=[100,200,300,400,500];
array_splice($a,2,1);
array_splice($a,3,1);
print_r($a);
?>
结果图:
array_diff():
<?php
$a=[100,200,300,400,500];
$b=array_diff($a,[100,400]);
print_r($b);
?>
结果图:
array_diff_key():
<?php
$stu=[
"id"=>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:对数组进行升序排序
<?php
$a=[66,64,90,88,76,100,94];
sort($a);
print_r($a);
?>
rsort:对数组进行降序排序
<?php
$a=[66,64,90,88,76,100,94];
rsort($a);
print_r($a);
?>
asort:对数组进行升序排序并保持索引关系
<?php
$a=["a"=>100,"b"=>50,"c"=>200,"d"=>190];
asort($a);
print_r($a);
?>
ksort:按照键名对数组进行升序排序
<?php
$a=["a"=>100,"b"=>50,"c"=>200,"d"=>190];
ksort($a);
print_r($a);
?>
arsort:对数组进行降序排序并保持索引关系
<?php
$a=["a"=>100,"b"=>50,"c"=>200,"d"=>190];
arsort($a);
print_r($a);
?>
krsort:按照键名对数组进行降序排序
<?php
$a=["a"=>100,"b"=>50,"c"=>200,"d"=>190];
krsort($a);
print_r($a);
?>
数组元素查找
在数组中常用的查找元素的方法有顺序查找和二分法查找
array_search():
<?php
$score=[65,88,50,78,98,35];
echo array_search("98",$score);
echo "<br>数组的长度是:".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
$score=[65,88,50,88,65,50,88,98,35];
$x=array_unique($score);
print_r($x);
?>
结果图:
键值对的相关函数:
在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 ] );
例:
<?php
$x=["张飞","关羽","刘备","子龙","阿亮","小乔"];
$y=array_rand($x,3);
foreach($y as $i){
echo $x[$i]."<br>";
}
?>
结果图:
array_reverse()函数:
array_reverse()函数的作用是返回一个元素顺序相反的数组。
其声明方式如下:
array array_reverse( array $array [, bool $preserve_keys ] );
array_reverse()接收数组$array作为输入并返回一个元素为相反顺序的新数组,如果$preserve_keys为 true,则保留原来的键名。
今天的文章php数组函数大全_php数组定义的三种方式分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/82613.html