7.1 数组概述
存储在数组中的单个值被称为数组的元素,每个数组元素都有一个相关的索引,也被称为数组下标。在PHP中下标可以是整数,也可以是字符串。如果以字符串作为下标的话,这时数组就像一个Map,提供了键值对的能力。
索引数组:以整数作为下标的数组。默认从0开始计数;
关联数组:以字符串作为下标的数组。
7.2 数组的定义
PHP中定义数组非常的灵活,无需在创建数组的时候指定数组的大小,甚至不需要在使用数组前先行声明,也可以在同一个数组中存储任何数据类型。也可以支持一维或多维数组。在PHP中可以使用如下2个方法来定义数组
1. 直接为数组元素赋值即可声明数组;
2. 使用array()函数来声明数组
7.2.1 直接赋值的方式来声明数组
语法:$数组变量名[下表] = 资料内容
其中下标可以是一个字符串或一个整数
<?php
//索引数组
$contact1[0] = 1;
$contact1[1] = "thomas";
$contact1[2] = "A Company";
$contact1[3] = "BeiJing";
$contact1[4] = "(010)98765432";
$contact1[5] = "thomas@php.com";
//关联数组
$contact2["ID"] = 2;
$contact2["NAME"] = "Jack";
$contact2["COMPANY"] = "B Company";
$contact2["ADDRESS"] = "ShangHai";
$contact2["PHONE"] = "(021)12345678";
$contact2["EMAIL"] = "jack@php.com";
//索引数组
$contact[] = 3; //下标为0
$contact[] = "Jesse"; //下标为1
$contact[] = "C Company"; //下标为2
$contact[] = "WuHan"; //下标为3
$contact[] = "(027)08642135"; //下标为4
$contact[] = "jesse@php.com"; //下标为5
var_dump($contact1);
var_dump($contact2);
print_r($contact);
?>
7.2.2 使用array()语言结构新建数组
语法:$数组变量名 = array(key1 => value1 , key2 => value2 , ... ... , keyN => valueN)
用以创建关联数组
$数组变量名 = array(value1 , value2 , ... ... , valueN)
用以创建下标从0开始的索引数组
<?php
$contact1 = array(
1
, "thomas"
, "A Company"
, "BeiJing"
, "(010)98765432"
, "thomas@php.com");
$contact2 = array(
"ID" => 2
,"Name" => "Jack"
,"Company" => "B Company"
,"Address" => "ShangHai"
,"Phone" => "(021)12345678"
,"EMAIL" => "jack@php.com"
);
var_dump($contact1);
print_r($contact2);
?>
7.2.3 多维数组
上面的例子都是一维数组,所谓的二维数组,也就是一维数组中的每一个元素也都是数组。三维,四维..的数组也是类似的概念。
<?php
$contact1 = array(
array(1,"Thomas","A Company","BeiJing","(010)87654321","thomas@php.com")
,array(2,"Jack","B Company","ShangHai","(021)12345678","jack@php.com")
,array(3,"Jesse","C Company","WuHan","(027)86421357","jesse@php.com")
);
$contact2 = array(
"BeiJing Contact"
=> array(1,"Thomas","A Company","BeiJing","(010)87654321","thomas@php.com")
,"ShangHai Contact"
=> array(2,"Jack","B Company","ShangHai","(021)12345678","jack@php.com")
,"WuHan Contact"
=> array(3,"Jesse","C Company","WuHan","(027)86421357","jesse@php.com")
);
var_dump($contact1);
print_r($contact2);
?>