Php 在下拉菜单中合并重复值

Php 在下拉菜单中合并重复值,php,codeigniter,Php,Codeigniter,我想合并下拉列表中的重复值,我不想使用array\u unique,因为它会删除我的第二个重复值。我的程序的工作方式是,如果您选择一个位置,它将相应地填充我的第二个下拉列表 如果您查看提供的图片,当我单击第一个Rosebank时,您可以看到两个重复条目Rosebank,它将仅在我的第二个下拉列表中显示提供商,但当我单击第二个Rosebank时,它将显示所有提供商及其位置Rosebank。我想知道是否有一种方法可以合并这两个副本,以便在我单击rosebank时显示所有提供者,并且它应该只显示一个r

我想合并下拉列表中的重复值,我不想使用
array\u unique
,因为它会删除我的第二个重复值。我的程序的工作方式是,如果您选择一个位置,它将相应地填充我的第二个下拉列表

如果您查看提供的图片,当我单击第一个Rosebank时,您可以看到两个重复条目
Rosebank
,它将仅在我的第二个下拉列表中显示提供商,但当我单击第二个Rosebank时,它将显示所有提供商及其位置
Rosebank
。我想知道是否有一种方法可以合并这两个副本,以便在我单击
rosebank
时显示所有提供者,并且它应该只显示一个
rosebank

这是我没有
数组的代码\u unique

    <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>
这是我的
var\u dump

                         array(2) {
  [0]=>
  object(stdClass)#28 (2) {
    ["id"]=>
    string(1) "4"
    ["notes"]=>
    string(29) "Randburg, Greenside, Rosebank"
  }
  [1]=>
  object(stdClass)#29 (2) {
    ["id"]=>
    string(1) "8"
    ["notes"]=>
    string(8) "Rosebank"
  }
}

在模型文件中使用$this db->group_by('column name')

这应该可以做到:

通过将其存储在数组中作为密钥来获取唯一位置:
$unique_locations = [];
foreach(array_unique($appointment_locations) as $location) {
    foreach(explode(",", $location->notes) as $singleLocation) {
        $unique_locations[$singleLocation] = 1;
    }
}
?>
使用array_键、array_映射和内爆将其组合在一起:

...
<select>
    <?= implode('', array_map(function($location) { return "<option value='$location'>$location</option>"; }, array_keys($unique_locations)))  ?>
</select>
...
。。。

尝试执行
var\u转储($appointment\u locations)
并让我们知道$appointment\u locations中到底包含什么。我不明白:您想合并值,但不想合并键?看来unlogic@GiacomoMasseroniChiaro我想合并这些键too@Akhilesh我已经更新并显示了dump,在$appointment\u位置有一些奇怪的东西。兰德堡、格林赛德和罗斯班克似乎有相同的身份证。
...
<select>
    <?= implode('', array_map(function($location) { return "<option value='$location'>$location</option>"; }, array_keys($unique_locations)))  ?>
</select>
...