2012-01-09 85 views
0

我有下面的代碼,但是,數組唯一是根本不工作,我不知道爲什麼?array_unique無法正常工作?

查詢中已經使用了一組或者不同的數據,但是這些數據爲每個主題提取了幾條記錄,然後我剝離下來並實際上使它們不唯一,例如,

我可看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(); 
+0

可你只打印您陣列的print_r($ output_items) – 2012-01-09 06:34:52

回答

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)); 
+0

許多感謝,完美。 – 2012-01-09 06:43:29

0

只需使用:

$array = array_unique($array, SORT_REGULAR);