PHP数组分类---索引数组、关联数组及它们的读取

什么是php数字索引数组

这是最常见的数组类型,绝大多数编程语言都有数字索引数组
数组可以构造一系列的"键-值-对",其中每一对都是数组的一个项目或者元素。对于数组中的每一个项目,都有一个与之关联的键(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)

你可能感兴趣的:(PHP数组分类---索引数组、关联数组及它们的读取)