将序列号添加到 while 循环内的重复值

Add sequential numbers to duplicate values inside while loop

我正在从名为 taskmanager 的 table 中提取 som 数据。其中一列包含 'assigned_user_id' 并且可以出现多次。

我想弄清楚,如何在 assigned_user_id 相同(重复)的地方添加序号。

但我真的不知道从哪里开始。

在我的 while 循环中,我有一个计算重复项的计数器,我尝试使用它,但无法让它工作。

而且我不知道这是否是正确的路径。

循环内的计数器:

$CountOccurence = $conn->prepare("SELECT COUNT(task_assigned_user) FROM taskmanager WHERE task_assigned_user = ?");
$CountOccurence->bind_param("i", $gettaskassigneduser);
$CountOccurence->execute();
$CountOccurence->bind_result($total);
    while ($CountOccurence->fetch()) {
        echo "(".$total.")";
    }                                   
$CountOccurence->close();

这给出:

Normal sequential counter   Assigneduserid     **sequential by assigned_user_id**
  1                              1                          2 ($total)
  2                              2                          2 ($total)
  3                              2                          2 ($total)
  4                              4                          1 ($total)
  5                              1                          2 ($total)

我想要的是:

Normal sequential counter   Assigneduserid     **sequential by assigned_user_id**
  1                              1                          1
  2                              2                          1
  3                              2                          2
  4                              4                          1
  5                              1                          2

有人可以帮助我或指出我可以看的方向。谢谢。

只需在循环数据时将用户 ID 添加到一个数组中,然后您就可以使用 array_count_values 轻松确定到目前为止每个 ID 出现了多少次。

在第一个循环迭代中,您将 AUid 1 添加到您的数组,然后 array_count_values 将 return 您的数组 [1 => 1]。因此,您使用 AUid 1 作为访问值 1 的键,并将其输出到您的第 3 列。

在第二次循环迭代中,将 AUid 2 添加到数组中。那么array_count_values就会return[1 => 1, 2 => 1]。现在您使用 AUid 2 访问该值 1,并将其输出到您的第 3 列。

在第三次循环迭代中,您将另一个 AUid 2 添加到数组中。那么array_count_values就会return[1 => 1, 2 => 2]。现在您使用 AUid 2 访问该值 2,并将其输出到您的第 3 列。

等等...