三维数组我们很少用到,这次用到三维数组一起分享一下。
使用需求:
在做一个C2C,B2C模式的房地产网站,因为每个楼盘都会有很多户类别,每个户型类别下面会有好几种不同的户型。
这些户型的名称是单独和每个楼盘相关的,不同的楼盘户型名称不同,户型类别下的户型名称也各不同。
这样为了在后台能够方便添加。我们设立了一个自定义字段,这个字段专门来记录该楼盘的户型。
例如:户型A,户型B,户型C,户型D
因为户型A下面会有很多户型,那么户型户型的描述
//小区户型图
$boroughDrawList = $borough->getImgList($id,1);
$huxingArr=array();
$huxingString='';
if($boroughInfo['huxing'])
{
$huxingString=explode(',',str_replace(',',',',trim($boroughInfo['huxing'])));
}
$arrContainer=array();
//定义和户型相同个数空数组容器
for($a=0;$a<count($huxingString);$a++){
$arrContainer[$a]=array();
}
//对该数组容器进行装填
for($h=0;$h<count($boroughDrawList);$h++){
$hx=explode(',',str_replace(',',',',trim($boroughDrawList[$h]['pic_desc'])));
$keyArr=array_search($hx[0],$huxingString);
if($keyArr===0||$keyArr){
$arrContainer[array_search($hx[0],$huxingString)][]=array('title'=>$hx[1],'pic_thumb'=>$boroughDrawList[$h]['pic_thumb'],'pic_url'=>$boroughDrawList[$h]['pic_url']);
}
}
//户型字符串的输出
$venusHx='';
for($m=0;$m<count($huxingString);$m++){
$hxyz=($m===0)?' selected':'';
$venusHx.='<a class="d_t '.$hxyz.'">'.$huxingString[$m].'</a>';
}
$page->tpl->assign('venusHx',$venusHx);
//数组容器的释放和赋值
$venusString='';
for($v=0;$v<count($arrContainer);$v++){
$dis=($v>0)?' style="display:none"':'';
$venusString.='<ul class="floatimg" '.$dis.'>
';
for($k=0;$k<count($arrContainer[$v]);$k++){
$venusString.='<li style="float:left"><div class="textbg"></div>
<div class="text">'.$arrContainer[$v][$k]['title'].'</div>
<a rel="example_group" href="'.$cfg['url'].'upfile/'.$arrContainer[$v][$k]['pic_url'].'" title="'.$arrContainer[$v][$k]['title'].'"><img width="200" height="150" alt="'.$arrContainer[$v][$k]['title'].'" src="'.$cfg['url'].'upfile/'.$arrContainer[$v][$k]['pic_thumb'].'"></a>
</li>
';
}
$venusString.='</ul>
';
}