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 關注
- 123 瀏覽
添加回答
舉報