这是最常见的数组类型,绝大多数编程语言都有数字索引数组
数组可以构造一系列的"键-值-对",其中每一对都是数组的一个项目或者元素。对于数组中的每一个项目,都有一个与之关联的键(key)或者索引(index)相对应。
键 | 值 |
---|---|
0 | low |
1 | high |
创建索引数组(数字)
$arr = array(50,60,70,80);
print_r($arr);
50的索引号为0,60的索引号为1…
输出结果:array([0]=>50,[1]=>60,[2]=>70,[3]=>80)
创建索引数组(字符串)
$arr = array('张三',‘李四’,‘王五’);
print_r($arr);
输出结果:array([0]=>‘张三’,[1]=>‘李四’,[2]=>‘王五’);
创建索引数组(数组,字符串,浮点数)
$arr = array(50,'张三','王五',80.56);
print_r($arr);
输出结果:Array ( [0] =>50 [1] => 张三[2] => 50 [3] => 50.8 )
注:php中数组元素可以为任意类型
使用[ ]代替array创建数组(效果一样)
$arr4 = ['apple','orange',50,50.8];//php5.4开始
print_r($arr);
输出结果:Array ( [0] => apple [1] => orange [2] => 50 [3] => 50.8 )
指定数组的键名
$arr5 = array(5=>'apple',6=>'orange',9=>50,11=>50.8);//指定数组索引号,键=>值,在数组中,键是不相同的,值可以相同
输出结果:Array ( [5] => apple [6] => orange [9] => 50 [11] => 50.8 )
如果没有指定键名,它将根据前一个键名依次往下排。
如果出现重复的键名,后者将覆盖前者。
创建空数组
//第一种
$arr6 = array();
//第二种
$arr6 = [];
向空数组里追加元素
$arr6[] = 'apple';
$arr6[] = 'orange';
$arr6[] = 50;
输出结果Array ( [0] => apple [1] => orange [2] => 50)
可以在数组中事先放元素
$arr6 = ['张三',80];
输出结果Array ( [0] => 张三)
尝试array__push追加元素(但是array最好)
array__push
array__push(数组名,值)
array_push($arr6,100);
array_push($arr6,'aaa');
输出结果:Array ( [0] => 100 [1] => aaa )
快速创建数组
传统方式
$arr = array('a','b','c','z');
快速创建数组(使用range函数)
range建立一个指定范围单元的数组,返回一个数组。
range(序列第一个值,序列结束的值)
$arr7 = range('A','Z');
print_r($arr7);
输出结果: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 )
**
除了数组索引数组,php还有一种关联数组,在其它计算机语言中,一般叫做flash或者map。
使用关键数组,我们可以为每个数组元素指定一个关键词,我们称之为键。
值 | value1 |
---|---|
键 | key_one |
键为字符串,或字符串与数字混合,我们都可以称之为关联数组。
第一种创建关联数组的方式
$a = array('张三'=>20,"李四"=>28,7=>"赵六",20)
print_r($a);
输出结果:Array ( [张三] => 20 [李四] => 28 [7] => 赵六 [8] => 20 )
如果这个array字句里没有给定键,它将从0开始。
如果这个array字句中有给定键,它将依次往下顺延。
第二种创建关联数组的方式
$a =['张三'=>20,"李四"=>28,7=>"赵六",20];
print_r($a);
输出结果:Array ( [张三] => 20 [李四] => 28 [7] => 赵六 [8] => 20 )
第三种创建关联数组的方式
创建空数组并存放数值
$arr = ();
$arr['张三'] = 50;
$arr['李四'] = 80;
$arr['赵六'] = 70;
$arr[5] = 'apple';
$arr[] = 'orange';
print_r($arr);
输出结果:Array ( [张三] => 50 [李四] => 80 [赵六] => 70 [5] => apple [6] => orange )
注:如果键名相同,后边元素的内容将覆盖前边元素的内容
如果想知道元素的位置,必须知道元素所在的索引号。
$arr = array(50,60,70,80);
我们知道70的索引号为2,但是如何读取呢?
我们采取一下方式:
echo $arr[2];
输出结果:70
我们又想知道没有键名的,怎么显示它的值
例子如下
$arr5 = array(5=>'apple',6=>'orange',50,11=>50.8);
echo $arr5[7];
输出结果:50(因为前一个索引号为6,所以下一个会依次往下排,为7)
综上所述,我们要输出索引数组中的元素,必须事先算出的索引号。对于关联数组来说,键名比较直接,可以通过输出元素。
我们想输出键名为张三元素的值
$arr =array(); //创建一个空数组
$arr['张三'] = 50;
$arr['李四'] = 80;
$arr['赵六'] = 70;
$arr[5] = 'apple';
$arr[] = 'orange';
echo $arr['张三'];
50
$arr =array(); //创建一个空数组
$arr['张三'] = 50;
$arr['李四'] = 80;
$arr['赵六'] = 70;
$arr[5] = 'apple';
$arr[] = 'orange';
echo $arr['5'];
输出结果:apple(只要是数,它就会转换为5)