php中二维甚至多维数组遍历怎么使用while-list—each呢?

 我来答
女淘日记
2016-06-18 · TA获得超过101个赞
知道答主
回答量:79
采纳率:0%
帮助的人:51.5万
展开全部

今天刚好遇到这个问题,发现书上的例子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 . '&nbsp;:&nbsp;' . $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 : 行政部经理
------------------------------

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
注册好勒
2012-05-22 · TA获得超过397个赞
知道小有建树答主
回答量:497
采纳率:0%
帮助的人:330万
展开全部
function arr_foreach ($arr)
{
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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式