根据相同的值将数组元素包装在div中 [英] Wrap array elements in divs based on same value
本文介绍了根据相同的值将数组元素包装在div中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
从mysql获取结果后,是否可以将字段id_group
中具有相同值的数组元素分组并将它们包装在div元素中.谁能给我一些建议呢?
After fetching results from mysql, is it possible to group the array elements with the same values from the field id_group
and wrap them in div elements. Can anyone give me soem suggestions?
这是我想要的输出:
<div class="id_group_1">
<div>comment from group 1</div>
<div>comment from group 1</div>
<div>comment from group 1</div>
</div>
<div class="id_group_2">
<div>comment from group 2</div>
<div>comment from group 2</div>
<div>comment from group 2</div>
<div>comment from group 2</div>
<div>comment from group 2</div>
</div>
PHP
$id_group = $_POST["group"];
$reply = $_POST["reply"];
$sql = "SELECT a.comments,b.name,a.id_group from `reviews` a
INNER JOIN `users` b
ON a.app_id = b.id
WHERE a.post_name = ?
AND a.id_group IN ($in)
ORDER BY a.id_group";
$users = $dbh->prepare($sql);
$users->bindValue(1,$reply);
$i = 3;
foreach ($id_group as $id) {
$users->bindValue($i++, $id);
}
$users->execute(array_merge(array($reply), $id_group));
//*****Here*****//
foreach($users as $row)
{
echo "<div>".$row["comments"]."<br>Written by ".$row["name"]."</div>";
}
推荐答案
$rows = $users->fetchAll(PDO::FETCH_ASSOC);
$arrayByGroup = array();
$id = null;
foreach ($rows as $r) {
if($id != $r['id_group']) {
if (!is_null($id)) {
echo '</div>';
}
$id = $r['id_group'];
echo '<div class="id_group_' . $id . '">';
}
echo "<div>".$r["comments"]."<br>Written by ".$r["name"]."</div>";
}
echo '</div>'
根据马特·巴雷特(Matt Barrett)的见识进行编辑.
Edit made based on Matt Barrett's insight.
这篇关于根据相同的值将数组元素包装在div中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文