2012-04-07 6 views
1

나는 위치를 찾기 위해 테이블 ​​또는 위치 및 사용자 쿼리를 사용합니다.PHP + 고유 한 배열

다음

enter image description here

볼 수 있습니다 : 질롱 북한, 빅토리아 북한을 아래의 예 (: 때때로 결과 세트가 수천 기록 될 수 있습니다) 인 - 내가 가진 문제는 일부 지역이 중복되어 있습니다 질롱, 빅토리아

내가 배열로 (쉼표의 없음) 각 위치에 대한 모든 단어를로드 할 수 있습니다

- 예 :

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

는 다음 종류의 효율적인 식으로 편곡 있는가 중복을 제거하려면. 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 삭제됩니다.

관련 문제