如何从我的foreach循环中删除重复项

时间:2019-03-22 10:46:04

标签: php

我有这个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 } ?>

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您可以使用内置函数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>

在进行这项工作时,您可能需要研究优化查询,以便在查询时仅选择唯一值,从而返回较少的数据。

答案 1 :(得分:1)

不知道DISTINCT像梦一样工作。答案就在这里!

public function getGodOrdre_nummerTable()
    {
        return $this->db->toList("SELECT DISTINCT  Ordre_nummer FROM `Angle`");
    }