Php 按标题分组的显示菜单-按标题分组的数组

Php 按标题分组的显示菜单-按标题分组的数组,php,Php,我四处寻找分组依据,但没有找到任何有意义或有效的东西 我在试着制作一份菜单,上面的标题是沙拉/比萨饼/意大利面等 我把它很好地保存到数据库中,并将其作为数组读取(我认为它被称为多维数组[如果你知道转储数组的正确名称,请告诉我我想知道] 这是我的数组转储 Array ( [heading] => Array ( [0] => Salads [1] => Salads [2] => Pasta )

我四处寻找分组依据,但没有找到任何有意义或有效的东西

我在试着制作一份菜单,上面的标题是沙拉/比萨饼/意大利面等 我把它很好地保存到数据库中,并将其作为数组读取(我认为它被称为多维数组[如果你知道转储数组的正确名称,请告诉我我想知道]

这是我的数组转储

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
.


您可以缓存最后一个标题并执行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">&nbsp;</td></tr>

    <tr>    <td class="selection"><b><?=$array['item'][$i]; ?>.
    </b>
    &nbsp;<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">&nbsp;</td></tr>
    <tr>    <td class="selection"><b><?=$array['item'][$i]; ?>.</b>
    &nbsp;<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
?>

.


您是否坚持使用该阵列的结构?谢谢你们两位的帮助。我是最棒的作品,开箱即用。谢谢您看到这里的图片[link]您是对的。我考虑了整体逻辑,出于某种原因决定跳过第一个标题。哎呀!
<?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">&nbsp;</td></tr>
    <tr>    <td class="selection"><b><?=$array['item'][$i]; ?>.</b>
    &nbsp;<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
?>