【发布时间】:2014-04-24 17:23:15
【问题描述】:
我有一个 php 对象,输出为:
Array (
[0] => stdClass Object (
[id] => 25
[itemid] => 13
[studentid] => 9
[score] => 22
[imagealt] =>
[timemodified] => 0
[data] =>
[firstname] => studentfirst9
[lastname] => studentlast9
)
[1] => stdClass Object (
[id] => 26
[itemid] => 13
[studentid] => 10
[score] => 23
[imagealt] =>
[timemodified] => 0
[data] =>
[firstname] => studentfirst10
[lastname] => studentlast10
)
[2] => stdClass Object (
[id] => 1
[itemid] => 1
[studentid] => 1
[score] => 2
[imagealt] =>
[timemodified] => 0
[data] =>
[firstname] => studentfirst1
[lastname] => studentlast1
)
[3] => stdClass Object (
[id] => 2
[itemid] => 1
[studentid] => 2
[score] => 3
[imagealt] =>
[timemodified] => 0
[data] =>
[firstname] => studentfirst2
[lastname] => studentlast2
)
[4] => stdClass Object (
[id] => 9
[itemid] => 5
[studentid] => 1
[score] => 6
[imagealt] =>
[timemodified] => 0
[data] =>
[firstname] => studentfirst1
[lastname] => studentlast1
)
[5] => stdClass Object (
[id] => 10
[itemid] => 5
[studentid] => 2
[score] => 7
[imagealt] =>
[timemodified] => 0
[data] =>
[firstname] => studentfirst2
[lastname] => studentlast2
)
[6] => stdClass Object (
[id] => 17
[itemid] => 9
[studentid] => 1
[score] => 10
[imagealt] =>
[timemodified] => 0
[data] =>
[firstname] => studentfirst1
[lastname] => studentlast1
)
[7] => stdClass Object (
[id] => 18
[itemid] => 9
[studentid] => 2
[score] => 11
[imagealt] =>
[timemodified] => 0
[data] =>
[firstname] => studentfirst2
[lastname] => studentlast2
)
[8] => stdClass Object (
[id] => 3
[itemid] => 2
[studentid] => 1
[score] => 3
[imagealt] =>
[timemodified] => 0
[data] =>
[firstname] => studentfirst1
[lastname] => studentlast1
)
[9] => stdClass Object (
[id] => 4
[itemid] => 2
[studentid] => 2
[score] => 4
[imagealt] =>
[timemodified] => 0
[data] =>
[firstname] => studentfirst2
[lastname] => studentlast2
)
[10] => stdClass Object (
[id] => 11
[itemid] => 6
[studentid] => 1
[score] => 7
[imagealt] =>
[timemodified] => 0
[data] =>
[firstname] => studentfirst1
[lastname] => studentlast1
)
[11] => stdClass Object (
[id] => 12
[itemid] => 6
[studentid] => 2
[score] => 8
[imagealt] =>
[timemodified] => 0
[data] =>
[firstname] => studentfirst2
[lastname] => studentlast2
)
[12] => stdClass Object (
[id] => 19
[itemid] => 10
[studentid] => 1
[score] => 11
[imagealt] =>
[timemodified] => 0
[data] =>
[firstname] => studentfirst1
[lastname] => studentlast1
)
[13] => stdClass Object (
[id] => 20
[itemid] => 10
[studentid] => 2
[score] => 12
[imagealt] =>
[timemodified] => 0
[data] =>
[firstname] => studentfirst2
[lastname] => studentlast2
)
[14] => stdClass Object (
[id] => 7
[itemid] => 4
[studentid] => 1
[score] => 5
[imagealt] =>
[timemodified] => 0
[data] =>
[firstname] => studentfirst1
[lastname] => studentlast1
)
[15] => stdClass Object (
[id] => 8
[itemid] => 4
[studentid] => 2
[score] => 6
[imagealt] =>
[timemodified] => 0
[data] =>
[firstname] => studentfirst2
[lastname] => studentlast2
)
)
正如所见,只有两个studentid 具有不同的itemid。我想将它们分组并打印为如下表格:
itemidid1 itemidid2 itemidid3
studentid1 x1 x2 x3
studentid2 y1 y2 y3
我正在尝试以下代码,但它显示的所有值都在一个下方。
<?php foreach ($hits as $hit): ?>
<?php if ($hit->studentid == $current_id): ?>
<td> <?php echo $hit->score; ?> </td>
<?php else: ?>
<?php if ($current_id != -1): ?>
</tr>
<?php endif; ?>
<?php $current_id = $hit->studentid; ?>
<tr>
<td><a href="#" id="<?php echo $hit->studentid; ?>" class="student-grade-data"> <?php echo $hit->firstname.' '.$hit->lastname; ?> </a></td>
<td> <?php echo $hit->score; ?>
</td>
<?php endif; ?>
<?php endforeach; ?>
【问题讨论】:
-
“正如你所见”...数组输出很大。你能减少示例输入吗?
-
首先遍历所有对象并将它们存储在按 ID 分组的缓冲区数组中,然后遍历该缓冲区并输出 HTML
-
显示您的查询,
select * .... -
我对你的问题有点困惑——当你说“只有两个
studentid有不同的itemid”时,你的意思是多个而不是不同?例如studentid9 和 10 只有itemid13。studentid1 和 2 有多个itemid实例。是否要从表中排除 9 和 10,因为它们只有一个itemid,并且只显示 1 和 2? -
另一件事......在你上面的表格中,
x和y前缀来自哪里,它们代表什么?它们看起来很重要,但它们不在您的源数据中,也不在您的代码 sn-p 中。
标签: php arrays html-table