2012-04-07 89 views
1

我在一個表或位置和用戶查詢找到那裏的位置。我的問題是一些地方被複制 - 下面是一個例子(注意:有時結果集可能是幾千條記錄):PHP +獨特的陣列

enter image description here

在這裏你可以看到: 吉隆北,維多利亞 北吉朗,維多利亞

我可以加載所有的每個位置的話(沒有逗號)到一個數組 - 例如:

array[0] - Geelong North Victoria 
array[1] - North Geelong Victoria 

有那麼排序的有效方式的ARR唉刪除重複。我猜如果我命令字A-Z - 重複應該是顯而易見的。

任何人有任何建議如何最好地去做這件事。我可以想象一個解決方案(有點像我之前解釋過的,但可能有更好的方法來完成這個)。

THX

回答

1

排序的話第一然後應用array_unique

$array = array('Geelong North, Victoria', 'North Geelong, Victoria'); 
function sortloc($s) { 
    $d = preg_split("/\W+/", $s, -1, PREG_SPLIT_NO_EMPTY); 
    sort($d); 
    return implode(' ', $d); 
} 
$locs = array_map('sortloc', $array); 
$locs = array_unique($locs); 
0

存在對array_unique()的函數。
看到這個:http://fi2.php.net/manual/en/function.array-unique.php

另一種方式是,如果你不需要保留的數字,是把該值也作爲重點,所以:

array["Geelong North Victoria"] - Geelong North Victoria 
array["North Geelong Victoria"] - North Geelong Victoria 

這將defenitely刪除您dupicates。