Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wykrywanie zdublowanych rekordów w pliku xml
pepro
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 20.09.2012

Ostrzeżenie: (0%)
-----


Witajcie.
Mój szef zadał mi pracę domową. Jest plik dane.xml o strukturze
  1. <dane>
  2. <rec>
  3. <name>nazwa</name>
  4. <address>adres</address>
  5. <city>miasto</city>
  6. <tel>600700800</tel>
  7. </rec>
  8. </dane>

Tych wpisów jest około 12000. wiele pól 'tel' się powtarza więc w jakiś magiczny sposób chciałbym wykryć zdublowane wpisy.
W efekcie chciałbym aby wylistowany był tylko jeden a nie kilka czy kilkanaście. Potem wygenerować zmodyfikowany plik dane.xml. Niby wszystko wiem tylko problemem pozostaje wyfiltrowanie i pozbycie się zdublowanych telefonów.

Mógłby mnie ktoś naprowadzić czego szukać lub podać jakiś przykład bym mógł sobie jakoś dojść do tego?

Serdeczne dzięki z góry za podpowiedzi.
Powód edycji: [webdice]: Błąd ortograficzny.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


@adbacz: 12.000 wpisów nie jest jakąś szczególnie wielką ilością, bez problemu można nad tym pracować.

1. Potrzebna będzie pomocnicza tablica, gdzie kluczami będą numery telefonów, zaś wartościami (do wyboru):
1.a. Ilość wystąpień (1, 2, 3...).
1.b. Kolejna tablica, zawierająca całą strukturę REC.
2. Potrzebna będzie druga pomocnicza tablica, w której przechowywać będziemy referencje do zdublowanych wpisów z pierwszej tablicy.
3. W przypadku, gdy do danego klucza pierwszej tablicy dopisujemy drugi rekord (wartość równa 2 w przypadku 1.a, bądź ilość elementów w tablicy równa 2 w przypadku 1.b ) tworzymy w drugiej pomocniczej tablicy referencję do owego klucza.

Po wykonaniu się skryptu, w pierwszej tablicy będziesz posiadał zgrupowane elementy (względem numeru telefonu), zaś w drugiej tablicy referencję do tych elementów, które reprezentują duplikat (2 lub więcej rekordów o tym samym numerze tel.)

EDIT: W drugiej tablicy zamiast referencji wystarczy trzymać klucz (tj. nr tel.).

Ten post edytował Crozin 22.12.2012, 12:33:48
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 06:58