• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

求,foreach遍历三维数组时只能遍历出第一个子级,这是为什么呢

php 搞代码 4年前 (2022-01-24) 20次浏览 已收录 0个评论

求高手指点,foreach遍历三维数组时只能遍历出第一个子级,这是为什么呢?

<br />												<tbody><br />												<?php $count=0 ;$countParent=0 ; if(isset($monitorList)){ foreach($monitorList as $key=>$val){<br />													?><br />													<tr>" style="cursor: pointer;"><br />														<td><?=$val['id']?></td><br />														<td> onclick="task(<?=$val['id']?>,'<?=$val['name']?>')"><?=Util::msubstr($val['name'],0,16,'gbk')?></td><br />														<td><?if(!empty($val[$key])){echo count($val[$key]);}else{echo $val['product_qty'];}?></td><br />														<td><?=date("Y-m-d ",strtotime($val['date_start']))?></td><br />														<td><?=$val['plan_director_name']?></td><br />																		<br />														<td style="padding: 0px"><br />																<span><?switch($val['status']){case 1: echo '10%';break;case 9: echo '100%';default: echo ((intval($val['status'])-1)*20).'%';}?></span><br />																<div id="progressouter" style="border:2px solid red;height:10px;width: 64px"><div id="progressinner">%; height:6px; background:#23bd00;"></div></div><br />														</td><br />														<td><br />															&workcenter_id=<?=$val['workcenter_id']?>&plan_id=<?=$val['id']?>'" id="show"><br />															查看  <br />														</td><br />													</tr><br />										<?php 	<br />														$countParent=$key+1+$count;$child=0;<br />														if(is_array($val[$key]))foreach($val[$key] as $v){    //这里只执行了一次<br />															if($val['id']==$v['parent_id']){<br />															$count=$count+1;$child=$child+1;<br />										?><br />													<tr> treegrid-parent-<?=$countParent?>"><br />														<td><?=$v['id']?></td><br />														<td><?=Util::msubstr($val['name'],0,16,'gbk')?></td><br />														<td><?=1?></td><br />														<td><?=date("Y-m-d ",strtotime($v['date_start']))?></td><br />														<td><?=$val['plan_director_name']?></td><br />														<td style="padding: 0px"><br />																<span><?if($v['status']=='1'){echo '10%';}else if($v['status']=='9'){echo '100%';}else{ echo <mark>6来源gaodaimacom搞#^代%!码网</mark><strong>搞gaodaima代码</strong>((intval($v['status'])-1)*20).'%';}?></span><br />																<div id="progressouter" style="border:2px solid red;height:10px;width: 64px"> <div id="progressinner">%; height:6px; background:#23bd00;"></div></div><br />														</td><br />														<td><?=$v['status']?></td><br />													</tr><br />												<?}<br />												}<br />												}}?><br />												</tbody><br />

——解决思路———————-
不是特别清楚你的数据结构,检查一下这个条件有没有满足
if(is_array($val[$key]))
——解决思路———————-
你的外层循环是
foreach($monitorList as $key=>$val)
进入内层循环的条件是
if(is_array($val[$key]))
不符合条件时,自然就没有输出

——解决思路———————-
if (is_array($val)) { //判断$val的值是否是一个数组,如果是,则进入下层遍历
——解决思路———————-
應該是
if (is_array($val)) 判斷是否有下一層


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:求,foreach遍历三维数组时只能遍历出第一个子级,这是为什么呢
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址