PHP从分隔字符串创建选项列表而不重复值

时间:2013-06-07 13:41:42

标签: php

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

$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,如果组合,但他们看起来很丑,工作同样糟糕。

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

1 个答案:

答案 0 :(得分:7)

通过array_unique()通过$ boom,你会没事的。

$bada_boom = array_unique($boom);

P.S。:如果您有重复错误的拼写错误或变体,这将无济于事。 (伊丽莎白!=伊丽莎白)。 在这种情况下,您需要发挥创意。

另外,hw(在评论中)提出了修剪空白的好处。如果郊区来自不受信任的来源并且格式不正确,您可能需要将它们标准化。这意味着修剪空格并规范大写:

$boom = array_walk($boom, 'trim');
$boom = array_walk($boom, 'strtolower');
$bada_boom = array_unique($boom);
相关问题