php数组
数组是什么?数组是一个能在单个变量中存储多个值的特殊变量,如果说我们有一个项目清单(例如:车名字的清单),我们用一个变量来存储一个名字,就像下面:
$cars1 = "Volvo";
$cars2 = "bmw";
$cars3 = "toyota";
如果只是少量的那还行,但是如果是300个3000个呢,并且如果我们要遍历这些名字并找出相应的一个,不是很麻烦吗,这我就要找数组来解决,数组可以在单个变量中存储多个值,并且可以根据键访问其中的值。
在php中,array()函数用于创建数组。
array();
在php中,有三种类型的数组:
- 数值数组 - 带有数字id键的数组
- 关联数组 - 带有指定的键的数组,每个键关联一个值
- 多维数组- 包含一个或多个数组的数组
数值数组
创建数值数组有两种方式,一种是自动分配ID键值,(ID键值总是从0开始):
$cars = array("volvo","BMW","Toyota");
另一种是人工分配ID键:
$cars[0] = "Volvo";
$cars[1] = "BMW";
$cars[2] = "Toyota";
实例:
获取数组的长度-count()函数
count()函数用于返回数组的长度(即元素的数量):
遍历数值数组
遍历并打印数值数组中的所有值,可以使用for循环,如下所示:
$
php关联数组
关联数组是使用所分配的数组的指定的键的数组,同样两种创建方式:
$age = array("Peter"=>"35","Ben"=>"37","Joe"=>"42");
或者是
$age['Peter'] = "35";
$age['Ben'] = "37";
$age['Joe'] = "42";
后面我们就可以使用脚本中使用指定的键:
遍历关联数组
遍历并打印关联数组中的所有值,可以使用foreach循环,如下:
关于foreach循环,我的理解是就像名称一样,for each循环每一个,foreach(变量名 as 循环变量=>循环变量所指的键值),和for没什么区别,我们通常是使用循环变量一般为数字,这边使用的非数字的数组,对于用数字作为循环变量就不太行,而使用foreach就比较方便了。(这边只是我自己的一个理解,不对之处还望各位能够指导下)。
多维数组
一个数组中的值可以是另一个数组,另一个数组的值也可以是另一个数组。依照这种方式,就可以创建二维或三维数组。多维数组是包含一个或多个数组的数组,在多维数组中的每一个元素也可以是一个数组,子数组中的每一个元素也可以是一个数组。
// 二维数组:
$cars = array
(
array("Volvo",100,96),
array("BMW",60,59),
array("Toyota",110,100)
);
尝试显示上面数组中的某个值:
其实很好理解,我是这样理解的,我们学过c语言,在编译过程中,我们经常使用到二维数组:
a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[1][2]
a[2][0] a[2][1] a[2][2]
而在这边我们只是换了一种写法,就是一行一行的定义,在第二个实例中的输出跟c语言的二维输出其实是一样的,只是将数字变为了字符串。
数组排序
数组中的元素可以按照字母或者数字顺序进行降序或升序排列,数组排序我们使用的是数组排序函数:
- sort()-对数组进行升序排列
- rsort()-对数组进行降序排列
- asort()-根据关联数组的值,对数组进行升序排列
- ksort()-根据关联数组的键,对数组进行升序排列
- arsort()-根据关联数组的值,对数组进行降序排列
- krsort()-根据关联数组的键,对数组进行降序排列
sort()-对数组进行升序排列
对字符串进行排序:
对数字进行排序:
rsort()-对数组进行降序排列
将数组元素按照字母降序排列:
对数组元素按照数字降序排列: