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>
...