下面是详细的攻略:
什么是多维数组
多维数组是指数组中包含有其他数组的数组,即数组的元素又是一个数组。
例如:$arr = array( array('name'=>'张三', 'age'=>20), array('name'=>'李四', 'age'=>22), array('name'=>'王五', 'age'=>25) )
上面的数组$arr是一个二维数组,其元素为三个一维数组。而每个一维数组中又有两个键值对,分别为name和age。
foreach遍历多维数组
在使用foreach遍历多维数组时可以使用嵌套的循环结构。
以下是一段遍历二维数组的例子:
$arr = array( array('name'=>'张三', 'age'=>20), array('name'=>'李四', 'age'=>22), array('name'=>'王五', 'age'=>25) );
foreach($arr as $key => $value){
echo "第".$key."个人的信息如下:"."<br>";
foreach($value as $k => $v){
echo $k.":".$v."<br>";
}
echo "<hr>";
}
代码解释:
- 第一行定义了一个二维数组$arr
- 第三行使用foreach遍历数组,$arr中的每一个元素都会被分别传递给变量$value和$key
- 第四行输出当前是第几个元素
- 第五行使用foreach遍历每个一维数组中的元素,并将每个元素依次传递给变量$v和$k
- 第六行输出元素的键和值
- 第七行换行,用于分隔不同元素
- 第八行输出分割线,用于分隔不同元素
输出结果:
第0个人的信息如下:
name:张三
age:20
-------------------------------
第1个人的信息如下:
name:李四
age:22
-------------------------------
第2个人的信息如下:
name:王五
age:25
-------------------------------
需要注意的是,这里使用了两个foreach循环嵌套,如果要遍历更高维度的数组,嵌套的foreach循环也会相应增加。
以下是一段遍历三维数组的例子:
$arr = array(
array(
array('name'=>'张三', 'age'=>20, 'hobby'=>array('篮球','游泳')),
array('name'=>'李四', 'age'=>22, 'hobby'=>array('乒乓球','羽毛球')),
),
array(
array('name'=>'王五', 'age'=>25, 'hobby'=>array('唱歌','跳舞')),
array('name'=>'赵六', 'age'=>18, 'hobby'=>array('摄影','旅行')),
),
);
foreach($arr as $key => $value1){
echo "第".$key."个大区域的信息如下:"."<br>";
foreach($value1 as $k => $v1){
echo "第".$k."个小区域的信息如下:"."<br>";
foreach($v1 as $k2 => $v2){
if(is_array($v2)){
echo $k2."的信息如下:"."<br>";
foreach($v2 as $k3 => $v3){
echo "爱好".($k3+1)."为:".$v3."<br>";
}
} else {
echo $k2.":".$v2."<br>";
}
}
echo "<hr>";
}
echo "<hr>";
}
输出结果:
第0个大区域的信息如下:
第0个小区域的信息如下:
name:张三
age:20
hobby的信息如下:
爱好1为:篮球
爱好2为:游泳
-------------------------------
第1个小区域的信息如下:
name:李四
age:22
hobby的信息如下:
爱好1为:乒乓球
爱好2为:羽毛球
-------------------------------
-------------------------------
第1个大区域的信息如下:
第0个小区域的信息如下:
name:王五
age:25
hobby的信息如下:
爱好1为:唱歌
爱好2为:跳舞
-------------------------------
第1个小区域的信息如下:
name:赵六
age:18
hobby的信息如下:
爱好1为:摄影
爱好2为:旅行
-------------------------------
-------------------------------
在遍历多维数组时,尽量使用语义化的变量名和注释,能够更好的防止代码出错,也方便日后维护。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP中多维数组的foreach遍历示例 - Python技术站