使用数组中的选定值输出多项选择?

时间:2016-11-30 11:19:33

标签: php

我有一系列工作:

$jobs = ['j1', 'j2', 'j3', 'j4', 'j5'];

我还有一系列用户工作:

$userJobs = ['j1', 'j3'];

我正在输出所有作业的多选,我希望选择用户作业。

如果用户只有一份工作,我会做这样的事情:

foreach($jobs as $job){
    echo '<option '.$job == $userJob ? 'selected' : ''.'>'.$job.'</option>';
}

但是如何在没有大量循环的情况下接近这个比较数组呢?

3 个答案:

答案 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>';