在PHP中对相关项进行分组

时间:2009-12-11 17:18:50

标签: php data-structures database

我在数据库中有一些行代表销售中的订单项。每个订单项都有五列:

  • id:主键。
  • sale_id:此订单项属于(Sales表的外键)的一部分的销售。
  • product_id:此项对应的产品(Products表的外键)。
  • group:此项目所属的订单项组。
  • is_subitem:此订单项是否为子项目。对于具有相同group值的任何订单项组,此处保证只有一个“虚假”值。

我想迭代特定sale_id的所有行,以生成一个列表:

  • 具有相同group值的订单项已关联在一起
  • 首先显示该群组is_subitem == false的订单项

我如何创建一个数据结构来促进这一点并以我喜欢的方式迭代?

2 个答案:

答案 0 :(得分:1)

这样的事可能有用..我还没有测试过。


$data = array();
$result = mysql_query( $your_query_here );

while( $row = mysql_fetch_assoc( $result ) )
{
    if( !isset( $data[$row['group']] ) )
    {
        $data[$row['group']] = array();
    }

    if( false == $row['is_subitem'] )
    {
        // when subitem is false we put the item at at the front of the array by unshifting it.
        array_unshift( $data[$row['group']], $row );
    }
    else
    {
        // else we just add the row to the end.
        $data[$row['group']][] = $row;
    }
}

答案 1 :(得分:0)

我编辑了以上几次,但现在应该还不错。