php中二维甚至多维数组遍历怎么使用while-list—each呢?
今天刚好遇到这个问题,发现书上的例子while-list—each遍历多维数组并没有说到,自己刚开始尝试时候都没有成功,后来琢磨了下,发现代码是这样的
下面以三维数组为例:
<?php
$array = array(
array(
array( '1' , '张三' , 'A公司' , '北京市' , '01012345678' , 'a@baidu.com' ) ,
array( '2' , '李四' , 'B公司' , '天津市' , '02012345678' , 'b@baidu.com' ) ,
array( '3' , '王五' , 'C公司' , '上海市' , '02112345678' , 'c@baidu.com' )
) ,
array(
array( '1' , '张三' , '市场部' , '5000' ) ,
array( '2' , '李四' , '客服部' , '4000' ) ,
array( '3' , '王五' , '售后部' , '3000' ) ,
array( '4' , '马六' , '行政部' , '2000' )
) ,
array(
array( '1' , '张三' , '市场部经理') ,
array( '2' , '李四' , '客服部经理') ,
array( '3' , '王五' , '售后部经理') ,
array( '4' , '马六' , '行政部经理')
)
) ;
/**
while遍历数组
**/
while( list( $a , $b ) = each( $array ) ) {
while( list( $c , $d ) = each( $b ) ) {
while( list( $name , $value ) = each( $d ) ) {
echo $name . ' : ' . $value . '<br />' ;
}
echo '------------------------------<br />' ;
}
}
?>
执行结果:
0 : 1
1 : 张三
2 : A公司
3 : 北京市
4 : 01012345678
5 : a@baidu.com
------------------------------
0 : 2
1 : 李四
2 : B公司
3 : 天津市
4 : 02012345678
5 : b@baidu.com
------------------------------
0 : 3
1 : 王五
2 : C公司
3 : 上海市
4 : 02112345678
5 : c@baidu.com
------------------------------
0 : 1
1 : 张三
2 : 市场部
3 : 5000
------------------------------
0 : 2
1 : 李四
2 : 客服部
3 : 4000
------------------------------
0 : 3
1 : 王五
2 : 售后部
3 : 3000
------------------------------
0 : 4
1 : 马六
2 : 行政部
3 : 2000
------------------------------
0 : 1
1 : 张三
2 : 市场部经理
------------------------------
0 : 2
1 : 李四
2 : 客服部经理
------------------------------
0 : 3
1 : 王五
2 : 售后部经理
------------------------------
0 : 4
1 : 马六
2 : 行政部经理
------------------------------
{
if (!is_array ($arr))
{
return false;
}
foreach ($arr as $key => $val )
{
if (is_array ($val))
{
arr_foreach ($val);
}
else
{
echo $val.'<br/>';
}
}
}
$arr1 = array (1=>array(11,12,13,14=>array(141,142)),2,3,4,5);
print_r($arr1);