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>


输出如下图所示:

https://img4.mukewang.com/64d5fc410001f56202550368.jpg

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

https://img2.mukewang.com/64d5fc500001890b02380211.jpg

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



皈依舞
浏览 126回答 1
1回答

慕婉清6462132

问题是您选择所有选项,然后循环选定的选项并输出所有可能选定项目的每个选项(在本例中有 2 个选定项目)。如果您有 4 个选项,则每个选项将输出 4 次。您只需检查选项 ID 是否在所选项目列表中,即可使用in_array()...&nbsp; &nbsp; &nbsp; foreach ($arr_branch as $rs_branch) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( in_array($rs_branch['id'], $jabatan_yang_akses_selected) ) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $selected = 'selected';&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $selected = '';&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo '<option value="' . $rs_branch['id'] . '" ' . $selected . '>' . $rs_branch['singkatan_nama'] . '</option>';&nbsp; &nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP