【发布时间】:2016-02-17 22:57:05
【问题描述】:
我有一个填充了查询结果的数组,如下所示:
$ticket[] = array(
'ticket_id' => $row->ticket_id,
'user_id' => $row->user_id,
'raffle_ticket_num' => $row->raffle_ticket_num
);
现在,在一个 while 循环中,如果我的变量 $number 等于“raffle_ticket_num”,我将检查 $tickets 中的所有数组。我使用以下代码(来自@Fuzzy Tree)执行此操作:
$ticket_num=1;
while ($ticket_num <= $total_slots){
foreach($ticket as $test) {
if($test['raffle_ticket_num'] == $ticket_num) {
echo $ticket_num.' claimed by '.$test['user_id'];
}
else{
echo $ticket_num;
}
}
$ticket_num++;
}
我现在遇到的问题是,因为我使用的是 foreach 循环,如果找到多个结果,它会导致它回显每个结果,就像 $ticket[].. . 所以有 2 行它会回显所有内容 2 次(因为 foreach)。有谁知道这个的解决方案或替代方案?
您可以在这里看到它:http://tinyurl.com/hxbhx7y。粗体数字是插槽 21 和 38,它们被占用并显示 user_id (1)。但正如你所见,它显示每个数字 2 次(因为 foreach 有 2 个结果)
编辑:使用@Fuzzy Tree 的答案更新帖子
【问题讨论】:
-
只需使用
foreach,如下所示,就足够了 -
你能给出小的数据样本,你期望得到什么和错误的结果?
-
是的。在这里查看:tinyurl.com/hxbhx7y。粗体数字是插槽 21 和 38,它们被占用并显示 user_id (1)。但正如您所见,它显示每个数字 2 次(因为 foreach 有 2 个结果)
-
2个用户可以拥有同一个票号吗?
-
假设答案是否定的,并用解决方案更新了我的答案。