数组是一组数据有序排列的集合,把一系列数据按一定规则组织起来,形成一个可操作的整体。
数组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最后一个元素,此时“当前指针”为空。