在php下拉列表中删除重复项

时间:2019-07-07 08:22:44

标签: php codeigniter

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

编辑:

这是输出 enter image description here

我尝试使用foreach(array_unique($appointment_locations) as $location) {,但是当我单击位置Rosebank时却没有显示第二个提供者

2 个答案:

答案 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));

https://www.php.net/manual/en/function.array-unique.php