我有一个php下拉列表,可从数据库中检索位置,它可以正确获取所有数据,但是有时如果两个记录在数据库中具有相同记录,它将在下拉列表中添加两次。这是一个位置下拉列表,某些位置是重复的,我想知道可以添加什么代码来删除重复的条目并仅保留其中一个。
这是我的代码:
<label for="select-service">
<strong>Enter a Location:</strong>
</label>
<select class="form-control" id="select-location" class="col-xs-12 col-sm-4 form-control" required>
<option value="">Select Location</option>
<?php
foreach($appointment_locations as $location) {
$LocationsArray = explode(",", $location->notes);
foreach($LocationsArray as $singleLocation):
?>
<option value="<?=$singleLocation ?>"><?=$singleLocation ?></option>
<? endforeach;
};?>
</select>
编辑:
我尝试使用foreach(array_unique($appointment_locations) as $location) {
,但是当我单击位置Rosebank
时却没有显示第二个提供者
答案 0 :(得分:0)
1)验证插入的数据,以避免出现这种情况
2)为什么不group by
从数据库中检索数据?
如果您无权执行此操作,则可以尝试使用简单的解决方案,而不是array_unique
解决方案
$tmp = [];
foreach ($repeatedLocations as $location) {
if (isset($tmp[$location]) == false) {
// do your stuff
$tmp[$location] = true;
}
}
unset($tmp);
答案 1 :(得分:-1)
尝试
foreach(array_unique($appointment_locations) as $location) {
//... code
或
$LocationsArray = array_unique(explode(",", $location->notes));