array_unique不工作?

时间:2012-01-09 06:16:27

标签: php mysql

我有以下代码,但是,数组唯一不起作用,我不明白为什么?

已经使用了查询的分组或不同的分组,但是,数据为每个主题提取了几条记录,然后我将其删除,实际上使它们不唯一,例如。

我可能正在查看DVD标题表并返回这些结果:

Goodfellas - 2010 remaster
Goodfellas (2006)
Goodfellas: 2011 remastered remaster of a remaster from last year

我只想向用户显示标题,因此我在第一个非字母/数字字符后删除所有内容,然后修剪(),从而生成单词Goodfellas的3个实例 这是代码:

$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($row = mysql_fetch_array($result)) { 

$output_items[] = $row[$title]; 

} // end while

// remove non characters
$output_items = preg_replace('/[^\w\s].*$/', "", $output_items); 

$output = array_unique($output_items);

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

mysql_close();

2 个答案:

答案 0 :(得分:3)

你没有修剪它们!试试这个:

$output_items = preg_replace('/[^\w\s].*$/', "", $output_items);
$output_items = array_map('trim', $output_items);

$output = array_unique($output_items);

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

答案 1 :(得分:1)

只需使用:

$array = array_unique($array, SORT_REGULAR);