我四处寻找分组依据,但没有发现任何有意义或有效的东西。
我想做一份菜单,把沙拉/披萨/意大利面等标题分组我把它保存到数据库中,并把它作为一个数组读取(我认为它被称为多维[如果你知道转储的数组被正确地称为什么,请告诉我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
)
im使用此作为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
这是菜单的屏幕截图
请注意,我有多个标题中的多个项目(标题相同,如各种披萨等)
提前感谢您为提供的任何帮助
您可以缓存最后一个标题并执行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
这确实假设你所有的标题都会像那样排列整齐。
假设您通过数据库中的标题对结果进行分组,这将使同一标题的所有项目保持在一起,那么您可能会使用以下方法:
<?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
?>