PHP-php中二维数组在页面遍历问题。
有一二维数组,它的元素个数是可变的。我在页面中要把它遍历出来,它的长度和值会决定div的class是什么,我这边写了一种方法,虽然效果达到了,但是感觉不是很好的。
代码大概是这样的:
<?php
$rs = Array(0 => Array('fund_id' => 15,'company_id' => 548,'company_name' => '朱雀投资'),
1 => Array('fund_id' => 16,'company_id' => 200,'company_name' => '明达资产')
);//这个数组的长度会发生变化
$len = count($rs);
for($i=0;$i<$len;$i++){
if($i == 0 && $len==2) {
$class = 'compTableL L';
}elseif($i==1 && $len==2) {
$class = 'compTableL R';
}elseif($i==0 && $len==3) {
$class ='compTable3L L';
}elseif($i==1 && $len==3) {
$class = 'compTable3C L';
}elseif($i==2 && $len==3) {
$class='compTable3R R';
}
?>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
相信这样应该会比你多个if和elseif好点,你说$rs数组可能会变化,但是无论怎么变化,下面对应的class还是需要手工定义,所以我这里做了一个数组映射,当有新的class需要添加里,不用写elseif,只需要在$items数组里直接添加一个键值对就行了。这样不仅方便,而且看起来明朗。
<?php
$rs = Array(0 => Array('fund_id' => 15,'company_id' => 548,'company_name' => '朱雀投资'),
1 => Array('fund_id' => 16,'company_id' => 200,'company_name' => '明达资产')
); //这个数组的长度会发生变化
$len = count($rs);
//将$rs的可能长度和出现的值做成映射
//例如:键值02中0的代表$i, 2代表$len
$item = array(
'02' => 'compTableL L',
'12' => 'compTableL R',
'03' => 'compTable3L L',
'13' => 'compTable3C L',
'23' => 'compTable3R R'
);
for($i=0;$i<$len;$i++){
$class = $item[$i.$len];
?>
<div class='<?php echo $class; ?>'>
<div class="compTd1 compTd Color1"><?php echo $rs[$i]['company_name']?></div>
</div>
<?php } ?>