数组分为索引数组和关联数组。在这里讲的是索引数组,首先先了解一下什么是数字索引数组
数字索引数组 是最常见的数组类型,绝大多数编程语言都有数字索引数组,PHP数字索引数组一般表示数组元素在数组中的位置,它由数字组成,下标从0开始。数字索引数组默认索引值就是从数字0开始的,不需要特别指定。PHP会自动为索引数组的键名赋一个整数值。然后从这个值开始自动增量。当然也可以指定从某个位置开始保存数据。
数组可以构成一系列的“键-值(key-value)对”,其中每一对都是数组的一个项目或者元素,对于数组中的每一个项目都有一个与之关联的键(key)或者索引(index)相对应。
键 | 值 |
0 | low |
1 | AimeeMann |
2 | AniDiFranco |
3 | Spiritualized |
4 | Air |
在数组中我们除了可以存放数值也可以存放字符串
$arr = array(50,60,70,80);
$arr2 = array('张三','李四','王五');
print_r($arr);//输出这个数组
ar_dump($arr);
也可以使用查看源代码来查看这个数组结构,或者使用var_dump()来查看
在php中数组元素可以是任意类型
$arr3 = array(50,'张三','王五',80.56);
而从PHP5.4开始我们可以使用[ ] 来代替array关键字,也就是说从PHP5.4后我们既可以使用array关键字来创建数组,也可以使用[ ]
$arr4 = ['apple','orange',50,50.8];
在=>前边的是键,后面是值
$arr5 = array(5=>'apple',6=>'orange',7=>50,11=>50.8);//指定数组索引号,键=>值,在数组中,键是不相同的,值可以相同
也可以不指定它的键名
$arr5 = array(5=>'apple',6=>'orange',50,11=>50.8);//指定数组索引号,键=>值,在数组中,键是不相同的,值可以相同
print_r($arr5);
会输出
array([5] => apple [6] => aorange [7] =>50 [11] =>50.8)
因为在它前面键分别是5,6又因为它没有指定键名所以顺延下来它就是7
如果我们要是将50.8的键改为7的话,又会输出什么呢。在数组中不可能存在两个相同的键,当我们将50.8的键名改为7时,就出现了两个键为7的元素,这样就会导致后边元素的值会覆盖前边元素的值
$arr5 = array(5=>'apple',6=>'orange',50,7=>50.8);
输出结果
array([5] => apple [6] => aorange [7] =>50.8)
在数组中,键是不相同的,值可以相同
$arr5 = array(5=>'apple',6=>'orange',50,8=>50);
输出结果
array([5] => apple [6] => aorange [7] =>50 [8] =>50)
我们创建数组时,可以先创建空数组,再向里面追加元素,创建空数组时可以使用$arr6 = array('张三',80);也可以使用$arr6 = [];
两种方式都可以
//先创建空数组,再向里面追加元素
$arr6 = array('张三',80);//创建空数组
// $arr6 = [];
$arr6[] = 'apple';//追加元素
$arr6[] = 'orange';
$arr6[] = 50;
也可以先放一部分元素再继续向数组中追加元素
$arr6= ['张三',80];
$arr6[] = 'apple';//追加元素
$arr6[] = 'orange';
$arr6[] = 50;
array_push($arr6,100);
array_push($arr6,'aaa');
还可以使用array_push快速创建一定范围单元的数组,先来了解一下array_push
array_push — 将一个或多个单元压入数组的末尾(入栈)
语法:int array_push ( array &$array
, mixed $var
[, mixed $...
] )
array:输入的数组
var:要压入的值。
array_push() 将 array
当成一个栈,并将传入的变量压入 array
的末尾。 array
的长度将根据入栈变量的数目增加。
Note: 如果第一个参数不是数组, array_push() 将发出一条警告。如下图
array_push(100);
array_push('aaa');
所以要在第一个参数的位置写入数组
array_push($arr6,100);
array_push($arr6,'aaa');
用array_push快速创建数组
//快速创建数组
// $arr7 = array('a','b','c','d','z');
$arr7 = range('a','z');//只能创建一定范围内的数组
// $arr7 = range('A','Z');
// $arr7 = range(0,9);
print_r($arr7);
// var_dump($arr);
输出结果
Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h [8] => i [9] => j [10] => k [11] => l [12] => m [13] => n [14] => o [15] => p [16] => q [17] => r [18] => s [19] => t [20] => u [21] => v [22] => w [23] => x [24] => y [25] => z )
上面的代码中用到了range()这个函数,
range — 建立一个包含指定范围单元的数组
说明
array range ( mixed $start
, mixed $limit
[, number $step
= 1 ] )
建立一个包含指定范围单元的数组。
参数
start
序列的第一个值。
limit
序列结束于 limit
的值。
step
如果给出了 step
的值,它将被作为单元之间的步进值。 step
应该为正值。如果未指定, step
则默认为 1