我四处寻找分组,但我找不到任何有意义或有效的东西。
我试图制作一个带有分组标题的菜单,如沙拉/披萨/意大利面等 我得到它保存到数据库很好,我把它作为一个数组读取(我认为它被称为多维[如果你知道什么转储数组被正确调用请告诉我id想知道]。
这是我的数组转储
Array
(
[heading] => Array
(
[0] => Salads
[1] => Salads
[2] => Pasta
)
[special] => Array
(
[0] =>
[1] =>
[2] =>
)
[item] => Array
(
[0] => Small Green
[1] => Regular Caesar
[2] => Baked Lasagna
)
[description] => Array
(
[0] => Grape tomatoes, onions, green peppers and cucumbers on the bed of crisp lettuce.
[1] => Classic recipe with romaine lettuce and croutons
[2] => With meat sauce, tomato vegetarian sauce or Alfredo sauce
)
[price] => Array
(
[0] => See Desc
[1] => $5.99
[2] => $9.69
)
[notes] => Array
(
[0] => Available in Small ($2.99), Regular ($5.99)
[1] =>
[2] =>
)
[submit_val] => Submit
)
我用这个作为php输出数据(减去mysql信息)
for($i = 0; $i < count($array['heading']); $i++) {
?>
<tr> <td colspan="2" align="center" class="section"><?=$array['heading'][$i]; ?></td></tr>
<tr> <td colspan="2"> </td></tr>
<tr> <td class="selection"><b><?=$array['item'][$i]; ?>.
</b>
<i><?=$array['description'][$i]; ?></i><br>
<SMALL><I><?=$array['special'][$i]; ?></I></SMALL><SMALL><?=$array['notes'][$i]; ?></SMALL>
</td>
<td class="selection" align="right" valign="top"><?=$array['price'][$i]; ?></td>
</tr>
<?
}// for i loop
这是现在的菜单screenshot of menu
所以如何制作它以便沙拉在一个标题而不是两个请注意,我有多个标题的多个项目(具有相同的标题,即各种比萨饼等)
提前感谢您提供的任何帮助
答案 0 :(得分:1)
您可以缓存最后一个标题并执行if语句:
<?php
$last_heading = '';
for($i = 0; $i < count($array['heading']); $i++) {
if ($last_heading !== $array['heading'][$i]) { ?>
<tr> <td colspan="2" align="center" class="section"><?=$array['heading'][$i]; ?></td></tr>
<?php $last_heading = $array['heading'][$i]; } // end if ?>
<tr> <td colspan="2"> </td></tr>
<tr> <td class="selection"><b><?=$array['item'][$i]; ?>.
</b>
<i><?=$array['description'][$i]; ?></i><br>
<SMALL><I><?=$array['special'][$i]; ?></I></SMALL><SMALL><?=$array['notes'][$i]; ?></SMALL>
</td>
<td class="selection" align="right" valign="top"><?=$array['price'][$i]; ?></td>
</tr>
<?
}// for i loop
这确实假设你的所有标题都是这样的。
答案 1 :(得分:0)
假设您要通过数据库中的标题对结果进行分组,这会将同一标题的所有项目保持在一起,那么您可能会使用以下内容进行处理:
<?php
for($i = 0; $i < count($array['heading']); $i++) {
if($array['heading'][$i] != $array['heading'][$i-1]){ // Compare headings
?>
<tr> <td colspan="2" align="center" class="section"><?=$array['heading'][$i]; ?></td></tr>
<?php
} //endif compare
?>
<tr> <td colspan="2"> </td></tr>
<tr> <td class="selection"><b><?=$array['item'][$i]; ?>.</b>
<i><?=$array['description'][$i]; ?></i><br>
<SMALL><I><?=$array['special'][$i]; ?></I></SMALL><SMALL><?=$array['notes'][$i]; ?></SMALL>
</td>
<td class="selection" align="right" valign="top"><?=$array['price'][$i]; ?></td>
</tr>
<?
}// for i loop
?>