不幸的是,当我的思绪被冻结时,我有过这样的时刻之一。因此,我真的需要一些关于我做错了什么的提示:
我根据 category_id 获取多行:
$certificates= $DB->get_records('prog', array('category'=>$_POST['something']),'', $fields='*');
使用这个我得到所有拥有这个证书的用户(在 foreach 中):
$usrwcert = $DB->get_records('certif_completion', array('certifid' => $cert->certifid), '', $fields = '*');
然后我只是在这个 usrwcert 上做另一个 foreach 并尝试用它的结果制作一个用户列表。
问题是每个用户都有两个证书,因此我在列表中获得了两次用户,这不是我想要的。
如何仅返回最后一个 foreach 中的唯一字段?这是我的完整代码:
$certificates= $DB->get_records('prog', array('category'=>$_POST['something']),'', $fields='*');
foreach($certificates as $cert) {
$usrwcert = $DB->get_records('certif_completion', array('certifid' => $cert->certifid), '', $fields = '*');
foreach($usrwcert as $user){
$userdet = $DB->get_record('user', array('id' => $user->userid), $fields = '*');
$mform->addElement('html', '<option value="'.$userdet->id.'">'.$userdet->firstname.' '.$userdet->lastname.' ('.$userdet->username.', '.$userdet->email.')</option>');
}
}
桃花长相依
阿波罗的战车