我有这个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 } ?>
感谢您的帮助!
答案 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`");
}