作者:陆寥频 | 来源:互联网 | 2013-06-28 13:47
签于菜鸟学习的时候总会用到遍历的时候,会用到foreach函数,在这里讲解一下foreach详例:
先来看第一个语句,这个语句比较简单,array_expression指的是一个数组表达式,as $val语句将顺序取得该数组的值并保存到$val变量中,此种方法只能取得数组内的值,而不能取得数组的下标索引值。例如:
$myArray=array("1"=>"val1","2"=>"val2","3"=>"val3");
foreach($myArray as $val) {
print($val." ");
}
其结果会输出:val1 val2 val3
再来看看第二种格式,第二种格式除了能像第一种格式一样得到数组内元素的值外,还能得到元素的索引值,并保存到$key变量中,如果数组的索引值未经过人工设定,则返回系统默认的设定值,
看正面例子:
先看一个简单的一维数组:
$myArray=array("1"=>"val1","2"="val2","3"=>"val3");
foreach($myArray as $key=>$val) {
print($key."=>".$val.";");
}
该程序将出输出:1=>val1;2=>val2;3=>val3;,接下来我们再来看一个复杂一点的二维数组遍历,程序如下:
$myArray=array(
"1"=>array("11"=>"val11","12"=>"val12","13"=>"val13"),
"2"=>array("21"=>"val21","22"=>"val22","23"=>"val23"),
"3"=>array("31"=>"val31","32"=>"val32","33"=>"val33")
);
print("
");
foreach($myArray as $key=>$val) {
print("- ".$key."
");
if (is_array($val)) { //判断$val的值是否是一个数组,如果是,则进入下层遍历
print("");
foreach($val as $key=>$val) {
print("- ".$key."=>".$val."
");
}
print("
");
}
}
print("
");
输出结果:
-
1
-
11=>val11
-
12=>val12
-
13=>val13
-
2
-
21=>val21
-
22=>val22
-
23=>val23
-
3
-
31=>val31
-
32=>val32
-
33=>val33
和 - 是 标签,作用是显示个实心小圆点和空心小圆点。
由于上面的是一个二维数组,在第一次遍历后所得到的$val值将是一个数组,所以我在遍历中加了一个判断,以便进行二层数组遍历。大家仔细看下,就能看懂,很简单的,不要被上面那些乱七八糟的字符所吓到了,呵呵。如果有条件,你还可以把它们复制到本地phpserver上运行下,看看效果,再分析,这样就更容易明白了。