PHP数组
本节介绍
(1) PHP数组基础
- 数组概念
- 索引数组
- 关联数组
(2) PHP数组操作
- 索引数组和关联数组混合
- 数组的添加和修改
- 数组的删除
- 数组的排序
- 数组的更多函数使用
(3) PHP多维数组
- 二维数组
- 三维数组
1. PHP数组
(1) PHP数组概念
- PHP数组可以存储多项数据,其中每个数据由key/value组成,根据key的不同分为:
- 索引数组:由int类型的索引号作为key
- 关联数组:由字符串类型作为key
- 使用函数array()可以创建一个空数组,它接收key=>value的元素,其中:
- key只能为integer或者string
- value可以为任意类型
- 一个PHP数组可以同时含有integer和string类型的键名,因为PHP实际并不区分索引数组和关联数组。
(2) PHP数组key的类型
- <1>. 数组key只能为数字和字符串,非整数和字符串的键会进行类型转换:
- 包含有合法整型值的字符串会被转换为整型,例如键名
"8"实际会储存为索引号8 - 布尔值也会被转换成整型,true转换为1,false转换为0
$array[true]与$array[1]一致$array[false]与$array[0]一致
- 浮点数也会被转换为整型,小数部分舍弃
$array[1.2]与$array[1]一致
- NULL会被转化为字符串,即键名null实际会被转换为
"" - 数组和对象不能作为key
- 包含有合法整型值的字符串会被转换为整型,例如键名
- <2>. 数组的索引key可以不连续
- <3>. 数组中可以同时包含索引key和字符串key
-
$array = array( "name" => "Carry", 1, 2, 3 ) ;
-
(3) PHP索引数组
- 有两种创建方法:
- <1>. 自动创建,默认建立索引,如:
$colors=array("red","green","black");
- <2>. 手动创建,如:
-
$colors=array(); $colors[0]=“red”; $colors[1]=“green”; $colors[2]=“black”;
-
- <1>. 自动创建,默认建立索引,如:
- 操作:
- <1>. 元素访问
- 访问数组中的某个元素使用索引号,如
$colors[1] - **注意:**如果索引号超过最大值,返回NULL,可使用is_null()函数判断某项元素是否存在。
- 访问数组中的某个元素使用索引号,如
- <2>. 获取数组长度
count()函数用于返回数组的长度(元素数)。
- <3>. 遍历数组
- 一般使用for循环遍历索引数组。
- <1>. 元素访问
(4) PHP关联数组
- 关联数组是使用您分配给数组的指定键的数组,键使用字符串表示。
- <1>. 创建方法1:
$age = array("Peter"=>"35","Ben"=>"37","Joe"=>"43") ;
- <2>. 创建方法2:
-
$age = array() ; $age['Peter']="35" ; $age['Ben]="37" ; $age['Joe]="43" ;
-
- <1>. 创建方法1:
- 关联数组操作
- <1>. 元素访问
- 关联数组访问元素是通过对应的key值,如
$age["Peter"]; - 如果key值不存在,则返回NULL;
- 关联数组访问元素是通过对应的key值,如
- <2>. 数组遍历
- 关联数组一般使用foreach语句进行遍历;
-
foreach ($variable as $key => $value) { echo "$key:$value<br>" ; }
- <1>. 元素访问
2. PHP数组操作
(1) PHP数组修改和追加
- <1>. 追加:
- 使用不存在的键名或者索引对添加项赋值
- 如果对给出的值没有指定键名,则取当前最大的整数索引值,而新的键名将是该值加一
- <2>. 修改:
- 使用已有索引或者键名进行赋值即为修改操作
(2) PHP数组删除
- 可以使用unset()函数删除数组中的某个元素
- **注意:**删除后数组将不会重建索引。如果需要删除后重建索引,可以用array_values()函数。
(3) PHP数组排序
- <1>. 索引数组排序函数:
- 以升序对数组排序:sort()
- 以降序对数组排序:rsort()
- <2>. 关联数组排序函数:
- 对关联数组按照键值进行升应排序:asort()
- 对关联数组按照键进行升序排序:ksort()
- 对关联数组按照键值进行隆序排序:arsort()
- 对关联数组按照键进行隆序排序:krsort()
(4) PHP数组更多操作
3. PHP多维数组
(1) PHP二维数组
- 二维数组是数组的数组,指数组中又包含数组
- 二维数组元素访问时要使用两层索引
- 定义:
- <1>.
-
$a = array() ; $a[0] = array( "k1" => "v1", "k2" => "v2", "k3" => "v3" ) ; $a[1] = array( "k1" => "v4", "k2" => "v5", "k3" => "v6" ) ;
-
- <2>.
-
$a1 = array( "k1" => "v1", "k2" => "v2", "k3" => "v3" ) ; $a2 = array( "k1" => "v4", "k2" => "v5", "k3" => "v6" ) ; $a = array($a1, $a2) ;
-
- <1>.
(2) PHP三维数组
- 三维数组是数组的数组的数组
- 三维数组使用三个索引来选取元素