在PHP中对foreach循环中的项进行分组
所以,我想做一种用户市场类型的东西。有一个数据库有在PHP中对foreach循环中的项进行分组,php,loops,grouping,Php,Loops,Grouping,所以,我想做一种用户市场类型的东西。有一个数据库有项目名称,基本上描述了虚拟项目,然后还有另一个表市场,当用户列出他们的一个项目时,它将在用户市场上出售 这里我唯一的问题是,我想按项目名称表中引用的项目名称对其进行分组。我知道我可以做很多if/else语句,但这是无关的,不仅因为有很多项,而且因为随着时间的推移,我会添加更多项。我希望最终的结果是 --[Water for sale]---------------------+ [50 water for sale] [20 water for
项目名称
,基本上描述了虚拟项目,然后还有另一个表市场
,当用户列出他们的一个项目时,它将在用户市场上出售
这里我唯一的问题是,我想按项目名称
表中引用的项目名称对其进行分组。我知道我可以做很多if/else语句,但这是无关的,不仅因为有很多项,而且因为随着时间的推移,我会添加更多项。我希望最终的结果是
--[Water for sale]---------------------+
[50 water for sale] [20 water for sale]
[10 water for sale] [10 water for sale]
--[Chips for sale]----------------------+
[50 chips for sale] [20 chips for sale]
[10 chips for sale] [10 chips for sale]
等等,动态完成
有什么帮助吗?获取数据:
$data = array();
while ($row = mysql_fetch_assoc($result)) {
$itemName = $row["item_name"];
if (!array_key_exists($itemName, $data)) {
$data[$itemName] = array();
}
$data[$itemName][] = $row;
}
显示数据
foreach ($data as $itemName => $rows) {
echo '<h1>', $itemName, '</h1>';
echo '<ul>';
foreach ($rows as $row) {
echo '<li>', $row["article_name"], '</li>';
}
echo '</ul>';
}
foreach($itemName=>$rows形式的数据){
回显“”,$itemName“”;
回声“”;
foreach($行作为$行){
回音“- ”,$row[“article_name”],“
”;
}
回声“
”;
}
确保您在SQL查询中对结果进行排序(而不是分组),那么循环将非常简单(假设PDO,以及表项名称上的列项名称
):
$sth=$dbh->query(“按项目名称顺序从项目名称中选择*);
$lastname='';
而($row=$sth->fetch()){
如果($lastname!=$row['item\u name'])){
回显'.$row['item_name'].';
}
//在此处回显每个项目的内容
//记住最后一行的名字
$lastname=$row['item_name'];
}
mmmm薯片和瓶装水。谢谢。这就是我的目标,只是无法想象!非常感谢。愿上帝保佑
$sth = $dbh->query ("SELECT * FROM item_names ORDER BY item_name");
$lastname = '';
while ($row = $sth->fetch()) {
if($lastname != $row['item_name']) {
echo '<h1>' . $row['item_name'] . '</h1>';
}
// echo contents for each item here
// remember name from last row
$lastname = $row['item_name'];
}