Hvordan sjekke for duplikater i CSV med PHP

PHP har en innebygd funksjon som vil lese en linje av data fra en CSV-fil og automatisk tilbake en rekke datafeltene i kommaseparert linje. Fordi du må lese filen i en linje av gangen, er det umulig å avgjøre om du har like poster basert på noen nøkkelfeltet før alle radene av data har blitt lest fra filen. For å se etter duplikater, må du legge dataene til en matrise og se etter et duplikat oppføring med hvert tillegg.

Bruksanvisning

1 Opprett en ny PHP-fil. Definer indekser av datafeltene du vil lese fra CSV-filen. For eksempel inn:

<? Php

define ( "EMAIL", 0);

define ( "NAVN", 1);

2 Initial en matrise for å lagre dataelementene. For eksempel inn:

$ Mennesker = array ();

3 Åpne datafilen. For eksempel inn:

$ fil = fopen ( "data.csv") || die ( "Kunne ikke åpne datafil!");

4 Gjenta for hver linje av data i CSV-fil og få de enkelte feltverdiene i en matrise. For eksempel inn:

while ($ data = fgetcsv ($ file)) {

5 Sjekk om nøkkelen allerede har en verdi knyttet til det, og hvis den gjør det, rapportere det som en duplikat. Legg det til på tabellen hvis det ennå ikke er definert. For eksempel inn:

if (isset($people[$data[EMAIL]]))

echo $ data [email]. "Har duplikater \ r \ n";

ellers

$ folks [$ data [email]] = $ data [NAVN];

}

?>