数组:有序的‘键-值’对组成的数据集合。键也成为索引。在严谨的语言中,数组定义的要求比较高。如java中的Arrays(Arraylist除外)的索引必须是一个数字而不能为字符串,且数组声明时必须确定数组中元素的个数。同一数组中元素的数据类型必须一致。而PHP程序是基于快速开发BS架构的网站,其对数据结构的要求较为松散。
根据索引值不同,数组分为两类:索引数组,索引为整数的数组,默认索引值为零,依次递增。关联数组,索引中包含字符串的数组。
数组的初始化赋值有两种方式:一是对数组变量赋值初始化数组;而是使用array()函数初始化数组。
count()函数取得数组与元素个数
key()函数返回当前元素的索引
current()函数返回当前元素的值
next()函数
常用数组遍历函数:foreach(),list() each()组合。
<?php
*/
//以下为索引数组举例
$number[] = "zero";
$number[] = "one";
echo $number[0];
echo $number[1];
$num[-10] = "1";
$num[0] = "2";
$num[20] = "3";
$num[21] = "4";
echo $num[0];
echo $num[21];
$n = array("0","1","2","3","4","5","6");
echo $n[0];
echo $n[6];
//用=>操作符给元素安排指定的索引
$ar = array("p","7" => "h","p","10" => "like");
echo $ar[0];
echo $ar[7];
echo $ar[8];
echo $ar[10];
//关联数组初始化举例,索引值包含字符串
$rel = array("China", "B" => "beijing", "T" => "tianjin", "S" => "shanghai");
echo $rel[0];
echo $rel["B"];
echo $rel["T"];
echo $rel["S"];
/*
结果:
zero
one
2
4
0
6
p
h
p
like
China
beijing
tianjin
shanghai
*/
echo "<br />";
$A = array("one","two","three","four");
$num = count($A);
for($i = 0;$i < $num;$i ++ ){
echo $A[$i]."<br />";
if($A[$i] == "one"){
unset($A[$i]);
}
}
//如果把直接放在for循环条件内,结果如何?
//尽量避免把count()放在循环体内,以防程序的内部操作导致条件改变。如上unset()释放变量,数组元素个数减少, count()函数执行结果发生变化。
$A = array("one","two","three","four");
for($i = 0;$i < count($A);$i ++ ){
echo $A[$i]."<br />";
if($A[$i] == "one"){
unset($A[$i]);
}
}
/*
next — 将数组中的内部指针向前移动一位
说明
mixed next ( array &$array )
返回数组内部指针指向的下一个单元的值,或当没有更多单元时返回 FALSE。
next() 和 current() 的行为类似,只有一点区别,在返回值之前将内部指针向前移动一位。这意味着它返回的是下一个数组单元的值并将数组指针向前移动了一位。如果移动指针的结果是超出了数组单元的末端,则 next() 返回 FALSE。
Warning
如果数组包含空的单元,或者单元的值是 0,内置常量false 则本函数碰到这些单元也返回 FALSE。要正确遍历可能含有空单元或者单元值为 0 的数组,参见 each() 函数。
*/
<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport); // $mode = 'bike';
$mode = next($transport); // $mode = 'car';
$mode = prev($transport); // $mode = 'bike';
$mode = end($transport); // $mode = 'plane';
?>
//参见 current(),end(),prev() 和 reset()。
?>