1 回答

TA贡献2003条经验 获得超2个赞
在第一个选项卡代码中循环遍历 $results 时,您退出循环并为 $res 分配一个值,该值在第二个选项卡代码中不会更改。这就是为什么第二个选项卡中只排除一个索引的原因。要解决此问题,请将 $post 与 $results 中存储的所有值进行比较。
如果您的 $results 数组包含所有已回答的测验,您可以在循环 $posts 时使用 in_array 检查 $results 是否包含 $post 的值。这是示例代码:
if (!in_array($post, $results)) { //search in $results for $post
// Show the Quiz since it has not been answered
}
我建议创建一个新数组,在第一个选项卡的循环中保存 $res 的每个新值,并使用上面相同的逻辑。
第一个选项卡的新代码
<?php $newArray = array();
foreach($results as $result):
$res = $result['activity'];
array_push($newArray, $res) ?>
<h4><?php echo $result['activity']; ?></h4>
<?php endforeach; ?>
第二个选项卡的新代码
<?php foreach($posts as $post):
$pos = $post['activity'];
if (!in_array($pos, $newArray)): ?>
<a href="<?php echo base_url();?>activity/start/<?php echo $post['id'];?>/<?php echo $id;?>">
<?php echo $post['activity']; ?>
</a>
<?php endif; ?>
<?php endforeach; ?>
- 1 回答
- 0 关注
- 101 浏览
添加回答
举报