php colspan,php-在偶数行中具有偶数个单元格元素的HTML表(colspan)

我试图建立一个非常简单的建筑物图表或流程图表示.

$floors = array( array( 'app_1','app_2','app_2_A' ),

array( 'app_3','app_4','app_5'),

array( 'app_6','app_7', 'app_8','app_9') ,

array( 'app_10','app_11', 'app_12','app_13') ,

array( 'app_14','app_15', 'app_16') ,

);

echo "

foreach ($floors as $floor ) {

$total_app = count( $floor);

echo "

";

for($i = 0;$i < $total_app; $i++){

echo "

";

echo $floor[$i] . ' ( ' . $total_app . ' ) '; //brackets only for debug

echo "

";

}

echo "

";

}

echo "

";

结果是:

问题是:客户希望所有行的宽度相等,并且并非所有楼层都具有相同数量的公寓.

所以我想我会用’colspan’. (在代码echo“< td colspan =”.$total_app.“>”;)中

问题(2):该脚本需要在100栋不同的建筑物上工作,因此,对于“ colspan”而言,任何小于完整动态计算的工作都将不起作用.

据我了解,Colspan实际上是相对于我拥有的最大单元数(具有最大元素数的行).

如果这是真的,那么我需要知道哪个数组元素(floor)具有最高的计数(公寓)-然后将其设置为标头-但我不确定该怎么做.

所以

>如何计算嵌套数组中的元素并进行比较以查看“人口最多的楼层”

>完成该操作-如何计算与该最高数量相关的每层公寓排的colspan. (colspan只能有int(),而不能有分数或百分数)

>建筑物被认为是从下到上,从上到下都是桌子,所以我需要翻转数组,但要保留“ colspan”的计算

>最后但并非最不重要的一点-我可能看错了一切,可能有一种更简单的方法来达到想要的结果(也许是divs?)-但我现在看不到一个-如果存在,请“拍一拍”我,给我看看路..

编辑我

就像之前说过的:解决方案必须灵活适用于所有配置:

范例:

$floors = array( array( 'app_1','app_2','app_2_A','app_2_B','app_2_C', 'app_2_D'),

array( 'app_3','app_4','app_5'),

array( 'app_6','app_7') ,

array( 'app_10','app_11', 'app_12','app_13') ,

array( 'app_14') ,

);

因此,任何“硬编码” colspan计算的尝试都将失败.

我需要行(楼层)的宽度相等,并且要使单元格(公寓)的每一行都填满,例如,如果我有2套公寓,则每行的宽度为50%(如果我有) 4套公寓,每套将占25%,3套公寓-33%,依此类推.

问题是如何在可能的情况下使用colspan或任何其他方法来实现这一目标.

解决方法:

首先,colspan是该行的立场,具有3列,但是我希望该行将所有列合并在单个单元格中,您可以使用colspan.

$max_app = 0;

foreach( $floors as $floor ){

$max_app = max(count($floor), $max_app);

}

echo "

foreach( $floors as $floor ){

echo "

";

for( $a=0;$a

if( $a+1 == count($floor) && $a+1 < $max_app ){

//last cell, total number of cell in floor does not equals to $max_app

echo "

";

}else{

echo "

";

}

echo $floor[$a];

echo "

";

}

echo "

";

}

echo "

";

?>

另一种解决方案是将DIV与float:left;一起使用.但是DIV的宽度需要知道.引起您的要求:所有单元都需要使用相同的宽度.

编辑1

您是否想要一个解决方案,使所有行的宽度相同,并且每行的所有单元格宽度相同???

echo "

foreach( $floors as $floor ){

echo "

$percent = ceil( 100 / count($floor) );

foreach($floor as $app){

print("

{$app}");

}

echo "

";

}

echo "

";

?>

标签:html-table,html,php

来源: https://codeday.me/bug/20191122/2059749.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值