1

テーブルまたは場所と、そこにある場所を見つけるためのユーザークエリです。私が抱えている問題は、いくつかの場所が重複していることです-以下に例を示します(注:結果セットが数千のレコードになる場合があります):

ここに画像の説明を入力

ここで見ることができます: ジーロング ノース、ビクトリア ノース ジーロング、ビクトリア

各場所のすべての単語 (カンマなし) を配列に読み込むことができます - 例:

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

配列を並べ替えて重複を削除する効率的な方法はありますか。単語 AZ を注文したと思います - 重複は明らかなはずです。

誰でもこれについて最善の方法についてアドバイスがあります。解決策を思いつくことができます (上で説明したようなものですが、これを行うにはもっと良い方法があるかもしれません)。

どうも

4

2 に答える 2

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);
于 2012-04-07T07:07:20.253 に答える
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

これにより、間違いなく重複が削除されます。

于 2012-04-07T07:12:46.823 に答える