前言 初始化数组的另一种方式是使用array()语言结构来新建一个数组。它接受一定数量的用逗号隔开的key=value参数对的方式,这种方法依然跟前面介绍的方法一样简单粗暴,且这种方法
前言
初始化数组的另一种方式是使用array()语言结构来新建一个数组。它接受一定数量的用逗号隔开的key=>value参数对的方式,这种方法依然跟前面介绍的方法一样简单粗暴,且这种方法更加直观,这也是我们实际开发中最常使用的方式,其语法格式如下代码所示:
$arrayName = array(key1=>value1,key2=>value2,key3=>value3,...,keyN=>valueN,);
使用array()构建数组
如果不使用“=>”符号指定下标,默认为索引数组。默认索引值同样是从0开始依次递增,类似于方括号[]为空的定义方式:
<?php
//索引数组的定义
echo "索引数组:\n";
$arr1[] = 1;
$arr1[] = '张三';
$arr1[] = '五年级1班';
$arr1[] = '11001';
print_r($arr1);
echo "索引数组单个元素访问:\n";
echo "ID".$arr1[0]."\n";
echo "姓名".$arr1[1]."\n";
echo "班级".$arr1[2]."\n";
echo "学号".$arr1[3]."\n";
?>
使用array()结构声明存储学生信息的索引数组$arr1。代码如下所示:
<?php
//索引数组的定义
echo "索引数组:\n";
$arr1 = array(1,'张三','五年级1班','11001');
print_r($arr1);
echo "索引数组单个元素访问:\n";
echo "ID".$arr1[0]."\n";
echo "姓名".$arr1[1]."\n";
echo "班级".$arr1[2]."\n";
echo "学号".$arr1[3]."\n";
?>
执行结果如下图所示:
上面的例子中创建一个名为$arr的数组,其中包含了4个元素,默认的索引是从0开始依次递增的整数。如果使用array()结构在初始化数组时不希望使用默认的索引值,就可以使用‘=>’运算符指定非连续的索引值。和直接使用赋值方式声明数组一样,也可以和指定索引值的元素一起使用。没有使用“=>”运算符指定索引值的元素,默认索引也是紧跟指定索引值元素中的最高的索引值递增。同样如果指定的下标值已经声明过,则属于对变量重新赋值。相关代码如下:
<?php
//索引数组的定义
echo "索引数组:\n";
$arr1 = array(1,18=>'张三','五年级1班',18=>'11001');
print_r($arr1);
echo "索引数组单个元素访问:\n";
echo "ID".$arr1[0]."\n";
echo "姓名".$arr1[1]."\n";
echo "班级".$arr1[2]."\n";
echo "学号".$arr1[3]."\n";
?>
执行结果:
以上代码混合声明的数组$arr1,和前面使用直接赋值方法声明的数组一样,下标和值的打印结果如下:
如果使用array()语言结构声明关联数组,就必须使用‘=>’运算符指定字符串下标。比如声明一个学生信息关联数组$arr1,左右两边使用两种方法声明的数组代码等同:
<?php
//关联数组的定义
echo "关联数组:\n";
$arr1 = array(
"ID" => 1,
"姓名" => "张三",
"班级" => "五年级1班",
"学号" => "11001",
);
print_r($arr1);
//跟下面的代码是等同的
$arr2['ID'] = 1;
$arr2['姓名'] = '张三';
$arr2['班级'] = '五年级1班';
$arr2['学号'] = '11001';
print_r($arr2);
?>
执行结果如下: