首先,我检查当前值是否是已显示值数组的一部分。如果不是,我会显示它。我仍然得到重复的值,我不知道为什么..这是我的代码:
while ($row = mysql_fetch_array($result))
{
$displayed = array();
if (!(in_array($row['Brand'],$displayed)))
{
array_push($displayed,$row['Brand']);
echo '<li>';
echo $row['Brand'];
echo '</li>';
}
}
答案 0 :(得分:4)
您正在$displayed = array();
循环的每次迭代重新初始化while
并基本上清除其中的任何数据。在循环之前将它移到外面。
答案 1 :(得分:1)
使用array_unique($array)
轻松删除每个重复的值。
答案 2 :(得分:0)
您在每次迭代时重新初始化数组,因此您有效地检查空数组中是否存在$row['Brand']
。它没有,因此in_array
返回false。将数组声明移到循环外部。
$displayed = array();
while ($row = mysql_fetch_array($result))
{
# code ...
}
通常的免责声明:mysql_*
函数已弃用,很快就会删除。请切换到MySQLi或PDO。
答案 3 :(得分:0)
您可以尝试以下代码:
$displayed = array(); //move here
while ($row = mysql_fetch_array($result))
{
if (!(in_array($row['Brand'],$displayed)))
{
array_push($displayed,$row['Brand']);
echo '<li>';
echo $row['Brand'];
echo '</li>';
}
}