0

我有一个表,其中包含以下条目:

123 (DVD)

123 [DVD] [2007]

125 [2009]

189 (CD)

当我在自动完成字段中将这些呈现给用户时,我会删除 () 或 [] 之间的任何内容,因为它们不相关,但是,正如您从上面的列表中看到的那样,这让我留下了 123 的两个条目在下拉列表中...有没有进一步抑制重复?有时可能有多达 5 或 6 个,至少可以说是错误的!下面的代码:

    // db select
    $query = "SELECT $title FROM PRprodINFO2 WHERE ((prodcatID = '$cat_id') AND ($title LIKE \"%" . $_GET["q"] . "%\")) group by $title LIMIT 8"; 

$result = mysql_query($query);

$output_items = array();

// while loop to print results
    while($row = mysql_fetch_array($result)) { $output_items[] = $row[$title]; } 

$output_items = preg_replace('/\[.*?\]|\s*/', '', $output_items); // remove [blah]

$output_items = preg_replace('/\(.*?\)|\s*/', '', $output_items); // remove (blah)

    print(implode("\n", $output_items));

非常感谢

4

2 回答 2

1

array_unique()函数从数组中删除重复值,在您的情况下为$output_items数组。

看看http://php.net/manual/en/function.array-unique.php

于 2011-12-05T16:41:57.350 回答
0

您可以array_unique ( array $array )在内爆之前删除所有重复项。

于 2011-12-05T16:42:22.027 回答