1

我有一个带有值(是郊区)的字符串,如下所示:

$suburbs = "Mawson, Elizabeth, Burnside, Elizbeth, Mawson";

字符串包含的郊区可能会出现双倍增长。我无法改变这个事实。

我要做的是为用户将使用的下拉菜单创建一个选项列表。我不想显示同一个郊区两次(或者更多次)。

到目前为止我所拥有的:

$suburbs = "Mawson, Elizabeth, Burnside, Elizbeth, Mawson";
//Explode the suburbs string delimited by a comma
$boom = explode(',', $suburbs);

foreach($boom as $b)
{
$suburbOptionList .= '<option value='.$b.'>'.$b.'</option>';
}
?>
<select> <?php
echo $suburbOptionList;
?>
</select>

我知道这只会显示所有选项,但我真的不知道如何只显示每个郊区一次。我尝试了一些 foreach 和 if 组合,但它们看起来很丑,而且效果也一样糟糕。

任何帮助,将不胜感激。提前干杯!

4

1 回答 1

7

通过array_unique()传递 $boom就可以了。

$bada_boom = array_unique($boom);

PS:如果您有错别字或重复内容的变化,这将无济于事。(伊丽莎白!=伊丽莎白)。在这种情况下,您将需要发挥创造力。

此外,hw(在评论中)对修剪空格提出了一个很好的观点。如果郊区来自不受信任的来源并且格式不正确,则可能需要对其进行规范化。这意味着修剪空格和规范化大写:

$boom = array_walk($boom, 'trim');
$boom = array_walk($boom, 'strtolower');
$bada_boom = array_unique($boom);
于 2013-06-07T13:44:24.413 回答