数组是一组数据有序排列的集合,把一系列数据按一定规则组织起来,形成一个可操作的整体。
数组array是一组有序的变量,其中每个变量被称为一个元素。
每个元素由一个特殊的标识符来区分,这个标识符称为键(也称为下标)
数组中的每个实体都包含两项:键和值。
PHP中数组可以是整数、浮点数、字符串、布尔值或数组,而且数组中的元素可以是由不同类型的数据组成。
数组类型
声明数组
$array_r_name = array([[key]=>value],[[key]=>value],...[[key]=>value]];
注意:元素键名在数组中不能重复,如有重复后面的元素将会覆盖前面同键名的元素,它与数组元素一一对应。
如不指定数组元素键名,PHP将按照第1个出现的未指定键名的元素的索引名为O,之后元素的键名为当前最大整数键名加1。
$arr_tmp = array(“张三”,3=>“男”,32,“G03”=>“广州”,“大二”);
解释:该数组第1个元素没有指定键名,所以其默认键名为O,因为第2个元素指定了键名为3,故第3个元素的键名为3+1即4,第5个元素的键名为4+1即5,该数组的结构如下所示:
Array([0]=>张三 [3]=>男 [4]=>32 [G03]=>广州 [5]=>大二)
一个变量声明为一个数组元素有三种方法:
第一种方法:不指定数组元素的“键”
示例程序:
$characters[] = "humour";
第二种方法:将数组元素的“键”指定为某个整数
示例程序:
$interests[2] = "music";
第三种方法:将数组元素的‘“键”指定为某个字符串
示例程序:
$colors["red"] = "red";
二维数组是指数组的元素本身也是数组。二维数组的定义与使用与一维数组相同,不同的是数组元素也是数组。
定义二维数组:
$arr_goods = array(
"tv"=>array("日立","三星","海信","创维"),
"computer"=>array("think pad","dell","联想","华硕"),
"network"=>array("tp-link","d-link","华为")
);
访问数组元素:
$arr_goods[“network”][0];//访问键名为network的第1个二级元素
遍历连续整数“键”的数组
bool print_r ( mixed expression )
如果该函数的参数expression为普通的整型、字符型或实型变量,则输出该变量本身。如果该参数为数组,则按一定键值和元素的顺序显示出该数组中的所有元素。
void var_dump ( mixed expression [, mixedexpression [, ...]] )
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
语法格式:
int count (array arr[, intmode])
函功能:统计并计算数组arr中元素的个数。如果数组arr是多维数组,可将mode 参数的值设为常量COUNT_RECURSIVE(或整数1),计算数组arr中所有元素的个数;mode 的默认值是0。
非连续“键”的数组遍历
语法格式:
mixed key(array &arr)
函数功能:返回数组arr中“当前指针”所指元素的“键”名。
语法格式:
mixedcurrent (array &arr)
函数功能:返回数组arr中“当前指针”所指元素的“值”。
语法格式:
mixednext (array &arr )
函数功能:移动数组arr“当前指针”(current),使“当前指针”(current)指向数组arr的下一个元素;然后返回“当前指针”(current)所指的元素“值”。
说明:当“当前指针”(current)指向数组的最后一个元素时,使用next()函数移动“当前指针”(current)后,“当前指针”(current)为“空”,并且“当前指针”(current)指向的元素“值”为FALSE。
语法格式:
arrayarray_combine (array keys, array values)
函数功能:创建一个新数组,用数组keys的值作为新数组的“键”,数组values的值作为新数组的“值”。
eg:
<?php
$colors = array('orange','red','yellow');
$fruits = array('orange','apple','banana');
$temp = array_combine($colors,$fruits);
do{
$key = key($temp);
$value = current($temp);
echo $key.'=>'.$value.'<br>';
}while(next($temp));
?>
输出:orange=>orange
red=>apple
yellow=>banana
foreach语言结构
使用该方法循环遍历给定的数组array,每次循环中,“当前指针”所指元素的“值”赋给变量$value,然后移动数组array“当前指针”,使“当前指针”指向下一个元素,周而复始,直至数组array最后一个元素,此时“当前指针”为空。
使用该方法循环遍历给定的数组array,每次循环中,“当前指针”所指元素的“键”名赋给变量$key,“当前指针”所指元素的值赋给变量$value,然后移动数组array“当前指针”,使“当前指针”指向下一个元素,周而复始,直至数组array最后一个元素,此时“当前指针”为空。