试图弄清楚如何在分组时循环

时间:2011-02-21 01:59:16

标签: php

以下是我的数据:

ID | Name | Family
 1 | John | Doe
 2 | Jane | Doe
 3 | John | Man
 4 | Jane | Blah

基本上我要做的就是按家庭分组。我在while语句中获取数据,我只是尝试使用array和array_push,但这根本不起作用。

有关如何执行此操作的任何想法或建议?

我将为jquery输出此数据以创建将按Family分组的optgroup。目前正在发生的事情:

while ($orders_status = tep_db_fetch_array($orders_status_query)) {
    $status_id = $orders_status['orders_status_id'];
    $status_name = $orders_status['orders_status_name'];
    $status_group = $orders_status['orders_status_group'];
}

这是基本代码。我尝试对上面提到的代码执行此操作:

while ($orders_status = tep_db_fetch_array($orders_status_query)) {
    $status_id = $orders_status['orders_status_id'];
    $status_name = $orders_status['orders_status_name'];
    $status_group = $orders_status['orders_status_group'];

    echo 'if (currentOption.val() == "' . $status_id . '") {
              var optgroup = $("<optgroup/>");
              optgroup.attr("label", "' . $status_group . '");
              currentOption.wrapAll(optgroup);
          }
    ';
 }

这样做基本上创造了多个家族的母鹿。相反,我想以某种方式创建一个Doe系列并将名称和ID推入其中

1 个答案:

答案 0 :(得分:0)

$groups = array();
foreach ($rows as $row) {
  $family = $row["family"];
  if (empty($groups[$family])) $groups[$family] = array();
  $groups[$family] []= $row;
}

// $groups["Doe"] will have the two relevant rows...