来自 mysql 查询的唯一数组

不幸的是,当我的思绪被冻结时,我有过这样的时刻之一。因此,我真的需要一些关于我做错了什么的提示:

我根据 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>');


            }

        }


当年话下
浏览 145回答 2
2回答

桃花长相依

您可以使用只break执行最后foreach一次,这样可以避免同一用户的下一条记录foreach($usrwcert as $user){&nbsp; &nbsp; $userdet = $DB->get_record('user', array('id' => $user->userid), $fields = '*');&nbsp; &nbsp; $mform->addElement('html', '<option value="'.$userdet->id.'">'.$userdet->firstname.' '.$userdet->lastname.' ('.$userdet->username.', '.$userdet->email.')</option>');&nbsp; &nbsp; break;}

阿波罗的战车

this works$unica=array();&nbsp; &nbsp; foreach($usrwcert as $user){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!in_array($user->userid,$unica)){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $userdet = $DB->get_record('user', array('id' => $user->userid), $fields = '*');&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $mform->addElement('html', '<option value="' . $userdet->id . '">' . $userdet->firstname . ' ' . $userdet->lastname . ' (' . $userdet->username . ', ' . $userdet->email . ')</option>');&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $unica[]=$user->userid;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP