仅显示数组PHP中的唯一值

时间:2014-01-18 18:44:05

标签: php arrays unique

首先,我检查当前值是否是已显示值数组的一部分。如果不是,我会显示它。我仍然得到重复的值,我不知道为什么..这是我的代码:

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>';
    }
}

4 个答案:

答案 0 :(得分:4)

您正在$displayed = array();循环的每次迭代重新初始化while并基本上清除其中的任何数据。在循环之前将它移到外面。

答案 1 :(得分:1)

使用array_unique($array)轻松删除每个重复的值。

Refrence

答案 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>';
    }
}