【发布时间】:2014-07-24 14:20:24
【问题描述】:
如果日期具有相同的 id,我想合并表格行。我有一些这样的数组数据:
Array
(
[0] => Array
(
[id] => 2
[date] => 05/13/2014
[content] => some contents 1
[act] => act1 act2 act3
)
[1] => Array
(
[id] => 2
[date] => 05/28/2014
[content] => some contents 1
[act] => act1 act2 act3
)
[2] => Array
(
[id] => 7
[date] => 06/04/2014
[content] => some contents 2
[act] => act1 act2 act3
)
)
然后我尝试将其数据分组到相同的 id by :
if($queryx = $this->mymodel->myfunction($par)){
$datax = $queryx;
}
$i = 0;
foreach ($datax as $idx => $val) {
$dates[$val['id']][$i] = $val['date'].",".$val['id'];
$contn[$val['id']][$i] = $val['content'];
$i++;
}
然后:
$j = 0; $y = 0;
echo "<table border='1'>\r\n";
foreach ($dates as $idx => $val) {
$tmpexp = explode(',', $val[$j]);
echo "<tr>\r\n";
echo "<td rowspan='".count($val)."'>".$tmpexp[0]."</td>\r\n";
foreach ($val as $idx1 => $val1) {
if($idx1 > 0)
{
echo "<tr>\r\n";
}
echo "<td>".$dates[$tmpexp[1]][$y]."</td>\r\n";
if($idx1 < 1)
{
echo "<td rowspan='".count($val)."'>".$contn[$tmpexp[1]][$y]."</td>\r\n";
echo "<td rowspan='".count($val)."'>act1 act2 act3</td>";
echo "</tr>\r\n";
}
$y++;
}
$j++;
}
echo "</table>";
如果数据至少有两个孩子没有问题,但是如果日期只有一个孩子(参见 id 为 7 的数据),则会显示错误,因为未定义偏移量。那么如果数据上只有一个孩子,我如何添加一些处理程序。有我想要的结果:
请看这张图片:
【问题讨论】:
-
请解释为什么 5/28 没有内容也没有行动?
-
因为内容的 rowspan = 2。记住 5/13 和 5/28 具有相同的 id
-
我明白了,所以您想跳过内容并在当前 id = 最后一个 id 时采取行动?为什么不能在迭代时就这样比较?
-
为垂直格式添加了“rowspan”。
标签: php html mysql codeigniter html-table