Chinaunix首页 | 论坛 | 博客
  • 博客访问: 323105
  • 博文数量: 173
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1060
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-09 16:23
文章分类

全部博文(173)

文章存档

2015年(66)

2014年(107)

我的朋友

分类: PHP

2015-01-25 12:19:08

数组的定义

数组的本质是管理和操作一组变量,数组中可以存储任意长度的数据,也可以存储任意类型的数据。数组中的单元称为元素,每个元素包括下标(键)和值,访问元素的时候,是通过下标来访问,包括一维数组,二维数组及多维数组(即数组的嵌套),PHP中分为索引数组和关联素组。

(1) 索引数组 :使用整数作为索引,如$arr=array('PHP课程','HTML课程','CSS课程');

(2) 关联数组 :使用字符串作为索引,如$arr=array('ID'=>1,'name'=>'PHP课程','class=>'PHP100');

PHP数组的声明和使用

1. 直接为数组元素赋值声明

如果索引下标不给出,就会从0开始顺序索引;如果给出索引下标,下一个就会从最大的下标开始增1;如果后面出现前面的下标,则会为前面的元素重新赋值;混合声明时,索引数组和关联数组不互相影响。

例如:

$array[0]="I";
$array[1]="love";
$array[2]="PHP";
print_r($array);

其中,print_r()是一个特殊的函数,允许你查看PHP数组变量里面的值,会按照一定键值和元素的顺序显示出该数组中的所有元素。这对于程序的调试很有帮助。

2.使用array()函数声明

默认是索引数组,如果为关联数组,需要为数组指定下标,使用“键=>值”,多个成员之间使用" , "分割。

例如:

$fruits = array('red' => 'apple', 'yellow' => 'banana', 'purple' => 'plum', 'green' => 'grape'); 
print_r($fruits);

PHP数组的遍历

我们经常要对数组进行遍历,PHP中遍历数组的方法有多种,可以使用for()循环遍历数组,在这里,经常会用到sizeof()函数,该函数 是常用的数组函数之一,返回数组的大小,即读取数组内元素的个数,作为循环计数器的上限值。还可以使用list()函数遍历数组,它只能用于数字索引的数 组,且数字索引从0开始。

PHP中还可以使用专门用于对数组循环目的函数:foreach()。foreach()对传递给它的数组中的每一个元素执行一次,它不需要计数器或调用函数sizeof(),它可以自动跟踪数组在数组中的位置,同时需要更少的维护。foreach()有两种语法结构:

(1)foreach (array_expression as $value) 
(2)foreach (array_expression as $key => $value)

第一种结构会遍历给定的array_expression 数组,每次循环中,当前单元的值被赋给$value 并且数组内部的指针向前移一步。第二种结构中,当前单元的键名也会在每次循环中被赋给$key。

foreach 循环运行到结束,原数组的内部指针将指向数组的结尾。例如:

foreach ($arr as $value) {
    echo "Value: $value ";
}
foreach ($arr as $key => $value) {
    echo "Key: $key; Value: $value ";
}

PHP数组的排序

对数组元素进行排序,我们在做项目时使用也比较多,涉及的相关函数也有很多,比 如 sort(),rsort(),usort(),ksort(),uasort(),uksort() 等等,这里先介绍几个。使用sort()和 rsort()分别对数组进行升序和降序,例如:

$arr=array(23,4,65,11,64,8);
sort($arr);
print_r($arr);

运行结果:

Array ( [0] => 4 [1] => 8 [2] => 11 [3] => 23 [4] => 64 [5] => 65 )

另外,我们可以注意到通过sort函数排序之后,数组原有的索引键名会被重新分配。rsort()会对数组进行逆向排序。

如果使用了关联数组,在排序后还要保持关键字和值的排序一致,这就需要使用ksort()和asort()函数,例如:

$array=array(''=>1,'jsp'=>2,'asp'=>3);
k($array);
print_r($array);

运行结果:

Array ( [asp] => 3 [jsp] => 2 [php] => 1 ) 

希望以上内容可以帮助你更好地理解和使用PHP数组。

  • 本文来自:
阅读(963) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~