我有一系列工作:
$jobs = ['j1', 'j2', 'j3', 'j4', 'j5'];
我还有一系列用户工作:
$userJobs = ['j1', 'j3'];
我正在输出所有作业的多选,我希望选择用户作业。
如果用户只有一份工作,我会做这样的事情:
foreach($jobs as $job){
echo '<option '.$job == $userJob ? 'selected' : ''.'>'.$job.'</option>';
}
但是如何在没有大量循环的情况下接近这个比较数组呢?
答案 0 :(得分:2)
只需翻转$userJobs
数组
$userJobs = array_flip(['j1', 'j3']);
然后您可以使用简单的isset($userJobs[$job])
:
foreach($jobs as $job){
echo '<option '.(isset($userJobs[$job]) ? 'selected' : '').'>'.$job.'</option>';
}
答案 1 :(得分:1)
这只是在数组中查找值(作业)的问题(用户作业)。
echo '<option '.(!in_array($job, $userJobs) ? null : 'selected').'>'.$job.'</option>';
答案 2 :(得分:1)
请使用in_array - 检查数组中是否存在值
echo '<option '.(in_array($job, $userJobs) ? 'selected' : ''.'>'.$job.'</option>';