首页 > 解决方案 > 如何从我的 foreach 循环中删除重复项

问题描述

我有这个 foreach 循环,我在 select 中使用它来从我的数据库中获取选项。但我得到了很多重复。这是我的代码。

 <select  id="selectid" name="selectOrdre_nummer" class="select custom-select col-md-1" onchange="callthis();">
  <option default disabled>-- select an option --</option>
  <option value=""> None </option>
<!---------------------------------------------------------------------->
    <?php foreach ($csv->getGodOrdre_nummerTable() as $select) { ?>
      <option class="option" value="<?= $select->Ordre_nummer ?>"><?= $select->Ordre_nummer ?></option>
    <?php } ?>
<!------------------------------------------------------------------------>
</select>

这是我尝试过的尝试,没有任何运气:

<script>$("select .option").val(function(idx, val) {
  $(this).siblings('[value="'+ val +'"]').remove();
});
</script>

也尝试过这样做:

<?php foreach ($csv->getGodVarenummerTable() as $select) {
          $varenummer = json_decode(json_encode($select->Varenummer), True);
          array_unique($varenummer);
?>
          <option class="option" value="<?= $varenummer?>"><?= $varenummer ?></option>
<?php } ?>

任何帮助表示赞赏!

标签: php

解决方案


您可以使用内置函数 array_unique 仅创建一个新的唯一值数组,基本上删除您的重复项。

<select  id="selectid" name="selectOrdre_nummer" class="select custom-select col-md-1" onchange="callthis();">
  <option default disabled>-- select an option --</option>
  <option value=""> None </option>
<!---------------------------------------------------------------------->
    $unique_array = array_unique($csv->getGodOrdre_nummerTable());
    <?php foreach ($unique_array as $select) { ?>
      <option class="option" value="<?= $select->Ordre_nummer ?>"><?= $select->Ordre_nummer ?></option>
    <?php } ?>
<!------------------------------------------------------------------------>
</select>

虽然这项工作有效,但您可能需要考虑优化您的查询,以便在查询点仅选择唯一值,从而返回更少的数据。


推荐阅读