Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从foreach循环中删除重复项_Php - Fatal编程技术网

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

Php 如何从foreach循环中删除重复项,php,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> <

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

感谢您的帮助

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

在进行此项工作时,您可能希望对查询进行优化,在查询点仅选择唯一的值,因此返回的数据较少。

不知道DISTINCT是如何工作的。答案就在这里

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

数组_unique?在查询中使用group by,向我们显示您的查询如果您从数据库中获得了选项,为什么不在查询中使用DISTINCT?非常感谢!您尝试使用array_unique时,首先关注的是错误的数据元素-它不是包含重复项的$select,而是$csv->getGodVarenummerTable的结果