我正在尝试比较网址的特定部分以获取结尾列表(这是资源/'位置',其中位置是状态首字母或字符串)。我正在使用它来填充下拉菜单。这适用于2个字母的状态,但是当我比较字符串时它仍然显示重复。这是我正在使用的代码,'National'是重复的字符串,不会被过滤掉。
$url = explode("/", $row['url']);
if(strcmp(trim($location[$url[2]]),trim($url[2])) != 0)
{
$location = array($url[2] => $url[2]);
echo '<option>'.$location[$url[2]].'</option>\n';
}
有没有更好的方法来比较字符串?
答案 0 :(得分:2)
使用in_array()
(http://php.net/manual/en/function.in-array.php)
$location = array();
$url = explode("/", $row['url']);
if(!in_array($url[2], $location))
{
$location[$url[2]] = $url[2];
echo '<option>'.$location[$url[2]].'</option>\n';
}
答案 1 :(得分:0)
为什么你甚至使用strcmp? 另外,你为什么要重置$ location?
$url = explode("/", $row['url']);
if(trim($location[$url[2]]) != trim($url[2]))
{
echo '<option>'.$url[2].'</option>\n';
}
不确定会导致重复的原因,我想我需要有一个例子可以解决这个问题。
编辑:忽略上述内容,在阅读完其他答案后,我看到了您要实现的目标。问题不是很清楚。