select 函数显示双重重复数据

The select funtion show double duplicate data

我在 select 函数中遇到问题,为什么 select 数据显示双重重复数据?希望有人能指导我我哪里出错了。谢谢。

下面是我的编码:


<select class="form-control" id="jabatan_yang_akses" name="jabatan_yang_akses" title="jabatan_yang_akses" multiple="multiple" style="display:none;">
          <!--<option value="0">Sila Pilih</option>-->
          <?php
          $sql_branch = 'select * from singkatan_jabatan';
          $arr_branch = db_conn_select($sql_branch);
          foreach ($arr_branch as $rs_branch) {
                        foreach ($jabatan_yang_akses_selected as $select_jabatan){
                            if ($select_jabatan == $rs_branch['id']) {
                                $selected = 'selected';
                            } else {
                                $selected = '';
                            }
                            echo '<option value="' . $rs_branch['id'] . '" ' . $selected . '>' . $rs_branch['singkatan_nama'] . '</option>';
                        }
          }
          ?>
</select>

输出如下图所示:

其实我想要如下图的输出:

我不确定我是否使用了两次 foreach 然后会在 select 框中显示重复数据。

更新:

问题是你 select 所有的选项,然后遍历 selected 的选项并为所有可能的 selected 项目输出每个选项(在这种情况下有 2 个 selected 项)。如果你有 4 个 selected 项目,每个选项将输出 4 次。

您可以使用 in_array()...

检查选项 ID 是否在 selected 项目列表中
      foreach ($arr_branch as $rs_branch) {
          if ( in_array($rs_branch['id'], $jabatan_yang_akses_selected) ) {
              $selected = 'selected';
          } else {
              $selected = '';
          }
          echo '<option value="' . $rs_branch['id'] . '" ' . $selected . '>' . $rs_branch['singkatan_nama'] . '</option>';
      }