;br>'';
15 ?>
输出结果为:
red blue green
red green
green
注意: list() 仅能用于数字索引的数组并且数字索引必须从 0 开始。
因为list函数是先把数组中键为0的元素值赋值给第一个变量,再把键为1的元素值赋值给第二个变量,以此类推,所以list函数中的变量个数和位置必须和数组中的数字键相对应,才能获得想要的值,而且list函数是访问不到以字符串作为键的数组元素的。如下所示:
复制代码 代码如下:
1 <?php
2 $array13=array(1=>''red'',''blue'',''green'');
3 list($flag1,$sky1,$grassland1)=$array13;
4 echo ''$flag1的值为:''.$flag1.''<br>'';
5 echo ''$sky1的值为:''.$sky1.''<br>'';
6 echo ''$grassland1的值为:''.$grassland1.''<br>'';
7 ?>
其输出结果为:
$flag1的值为:
$sky1的值为:red
$grassland1的值为:blue
说明:因为$flag1的值本应为数组中键为0的元素值,但此数组首元素是以1为键,没有键为0的元素,所以$flag1的值为空,因此也导致后面$sky1和$grassland1的值发生了变化。
4、 使用each函数访问数组
each 函数是返回数组中当前的键/值对并将数组指针向前移动一步,注意是一对,下面详细说明。该函数语法:
array each ( array &$array )
返回 array 数组中当前指针位置的键/值对并向前移动数组指针。每一个键值对被返回为四个单元的数组,键值为 0,1,key 和 value四个元素。元素 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。如果内部指针越过了数组的末端,则 each() 返回 FALSE。这里面为什么each函数有四个下表呢?其实each函数得到这四个下标只是方便我们操作而已,我们可以用0,1作为索引,也可以用key,value作为索引。请看下列代码:
复制代码 代码如下:
1 <?php
2 $arr=array("我是第一个值","我是第二个值","我是第三个值");
3 echo "当我们用0,1为索引时:<br/><br/>";
4 $a=each($arr);
5 echo "我在\$arr数组中的键为:".$a[''0''];
6 echo "<br/>";
7 echo "我在\$arr数组中的值为:".$a[''1''];
8 echo "<br/><br/>";
9 echo "当我们用key,value为索引时:<br/><br/>";
10 $b=each($arr);
11 echo "我在\$arr数组中的键为:".$b[''key''];
12 echo "<br/>";
13 echo "我在\$arr数组中的值为:".$b[''value''];
14 ?>
显示为:
当我们用0,1为索引时:
我在$arr数组中的键为:0
我在$arr数组中的值为:我是第一个值
当我们用key,value为索引时:
我在$arr数组中的键为:1
我在$arr数组中的值为:我是第二个值
5、 用each函数与list函数结合来遍历数组,如下例:
复制代码 代码如下:
1 <?php
2 $array14=array(''a'' => ''apple'', ''b'' => ''banana'', ''c'' => ''cranberry'');
3 while(list($key,$value) = each($array14))
4 {
5 echo "$key => $value\n";
6 }
7 ?>
其输出结果为:
a => apple b => banana c => cranberry
6、使用for循环访问数组
如下例所示:
复制代码 代码如下:
1 <?php
2 $array15=array(''a'',''b'',''c'',''d'',''e'',''f'');
3 for($i=0;$i<count($array15);$i++)
4 {
5 echo ''数组元素:''.$array15[$i].''<br>'';
6 }
7 ?>
输出结果为:
数组元素:a
数组元素:b
数组元素:c
数组元素:d
数组元素:e
数组元素:f