前言
在PHP中定义数组非常灵活。与其他许多编程语言中的数组不同,PHP不需要在创建数组时指定数组的大小和类型,甚至无需再使用数组前先行声明,也可以在同一个数组中存储任何类型的数据,PHP支持一维和多维数组,可以由用户创建,也可以由一些特定的数据库处理函数从数据库查询中生成数组,或者从一些其他函数返回数组。在PHP中自定义数组可以使用以下两种方法:
- 直接为数组元素赋值即可声明数组
- 使用array()函数声明数组
使用上面两种方法声明数组时,不仅可以指定元素的值,还可以指定元素的下标,即键和值都可以由使用者来·定义。
数组的定义
数组中索引值(下标)只有一个的数组称为一维数组,即只有一行数据。在数组中这是最简单的一种,也是最常用的一种。使用直接为数组元素赋值的方法声明一维数组的语法如下:
$arrayName[下标] = 值;
$arrayName是数组的变量名,下标可以是一个字符串或一个整数
由于PHP中数组没有大小限制,所以在为数组初始化的同时对数组进行了声明。下面我们通过实例了解索引数组和关联数组的定义,声明两个数组变量,数组变量名分别为$arr1和$arr2.在变量名后面通过方括号“[]”中使用数字声明索引数组,使用字符串声明关联数组,代码如下:
<?php
//索引数组的定义
echo "索引数组:\n";
$arr1[0] = 1;
$arr1[1] = '张三';
$arr1[2] = '五年级1班';
$arr1[3] = '11001';
print_r($arr1);
//关联数组的定义
echo "关联数组:\n";
$arr2['ID'] = 1;
$arr2['姓名'] = '张三';
$arr2['班级'] = '五年级1班';
$arr2['学号'] = '11001';
print_r($arr2);
?>
执行结果如下:
有时在调试时,如果只想在程序中查看一下数组中所有元素的下标和值,可以使用print_r()或var_dump()函数打印数组中的所有元素,print_r()只输出数组,var_dump()会同时输出元素的数据类型。上面的代码中声明了$arr1和$arr2两个数组,每个数组中都有4个元素。因为PHP中的数组没有大小限制,所以可以在上面的两个数组中用同样的方法继续添加新的元素。数组声明后,访问的方式也是通过在变量名后面使用方括号“[]”传入下标,即可访问到数组中的具体的元素。
<?php
//索引数组的定义
echo "索引数组:\n";
$arr1[0] = 1;
$arr1[1] = '张三';
$arr1[2] = '五年级1班';
$arr1[3] = '11001';
print_r($arr1);
echo "索引数组单个元素访问:\n";
echo "ID".$arr1[0]."\n";
echo "姓名".$arr1[1]."\n";
echo "班级".$arr1[2]."\n";
echo "学号".$arr1[3]."\n";
//关联数组的定义
echo "关联数组:\n";
$arr2['ID'] = 1;
$arr2['姓名'] = '张三';
$arr2['班级'] = '五年级1班';
$arr2['学号'] = '11001';
print_r($arr2);
echo "关联数组单个元素访问:\n";
echo "ID".$arr1['ID']."\n";
echo "姓名".$arr1['姓名']."\n";
echo "班级".$arr1['班级']."\n";
echo "学号".$arr1['学号']."\n";
?>
执行结果:
在声明数组的时候,当你没有给元素声明下标,默认为索引数组,数组的下标默认从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";
?>
执行结果: