Provjera brojeva u CSV fileu

Pozdrav.

Imam PHP skriptu koja provjerava CSV file koji moze imati neogranicen redova i u svakom redu ima 10 brojeva koji mogu biti od 1 do 20.
Sadrzaj primjera CSV filea(download
http://www.2shared.com/file/WAhbs9yu/csv_brojevi.html
):
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
9, 10, 11, 12, 13, 14, 15, 16, 17, 18
13, 14, 15, 16, 17, 18, 19, 12, 11, 10
5, 7, 8, 9, 12, 14, 2, 6, 1, 15
17, 12, 13, 6, 8, 9, 7, 19, 20, 16

I sada provjeravam u svakom redu koji brojevi nedostaju u razmaku od 1 do 20. Dakle nakon sto mi skripta izbaci sadrzaj CSV filea pokraj svakog reda mi se prikazu brojevi koji nedostaju u razmaku od 1 do 20.
Rezultat skripte:

1, 2, 3, 4, 5, 6, 7, 8, 9, 10 - nedostaju: 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
9, 10, 11, 12, 13, 14, 15, 16, 17, 18 - nedostaju: 1, 2, 3, 4, 5, 6, 7, 8, 19, 20
13, 14, 15, 16, 17, 18, 19, 12, 11, 10 - nedostaju: 1, 2, 3, 4, 5, 6, 7, 8, 9, 20
5, 7, 8, 9, 12, 14, 2, 6, 1, 15 - nedostaju: 3, 4, 10, 11, 13, 16, 17, 18, 19, 20
17, 12, 13, 6, 8, 9, 7, 19, 20, 16 - nedostaju: 1, 2, 3, 4, 5, 10, 11, 14, 15, 18

E sada bi trebao postici da mu skripta provjerava svaka 2 reda, znaci 1 i 2 red, 2 i 3 red, 3 i 4 red, itd… Tj da mi se ispisu brojevi koji nedostaju pokraj svaka 2 reda, znaci ovako nesto da dobijem:

1, 2, 3, 4, 5, 6, 7, 8, 9, 10
9, 10, 11, 12, 13, 14, 15, 16, 17, 18 - nedostaju: 19, 20
13, 14, 15, 16, 17, 18, 19, 12, 11, 10 - nedostaju: 1, 2, 3, 4, 5, 6, 7, 8, 20
5, 7, 8, 9, 12, 14, 2, 6, 1, 15 - nedostaju: 3, 4, 20
17, 12, 13, 6, 8, 9, 7, 19, 20, 16 - nedostaju: 3, 4, 10, 11, 18

Trenutna skripta:

koja daje vec spomenuti rezultat:

1, 2, 3, 4, 5, 6, 7, 8, 9, 10 - nedostaju: 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
9, 10, 11, 12, 13, 14, 15, 16, 17, 18 - nedostaju: 1, 2, 3, 4, 5, 6, 7, 8, 19, 20
13, 14, 15, 16, 17, 18, 19, 12, 11, 10 - nedostaju: 1, 2, 3, 4, 5, 6, 7, 8, 9, 20
5, 7, 8, 9, 12, 14, 2, 6, 1, 15 - nedostaju: 3, 4, 10, 11, 13, 16, 17, 18, 19, 20
17, 12, 13, 6, 8, 9, 7, 19, 20, 16 - nedostaju: 1, 2, 3, 4, 5, 10, 11, 14, 15, 18

Nadam se da ste me skuzili.
Vec tjedan dana trazim nesto slicno po netu ali bez uspjeha…

Hvala puno i pozdrav :slight_smile:

Evo mislim da ces se snaci :slight_smile: Logika je da procitas dva reda, onda ih spojis u jedan array i onda taj array poredis sa rangeArray…Skontat ces iz malog primjera

Hvala pdalibor, evo probao sam tvoj kod i ne radi, javlja mi

Warning: array_diff() [function.array-diff]: Argument #1 is not an array in /home/megtest/public_html/csv_upload_br/upload.php on line 9

Warning: implode() [function.implode]: Invalid arguments passed in /home/megtest/public_html/csv_upload_br/upload.php on line 11

Ma ja sam stavljao svoje nazive varijabli pa ih poslije mijenjao tvojim da skontas, pa sam zaboravio u liniji

$missingValues = array_diff($arr_3,$dva_reda);

zamijeniti $arr_3 sa $arrayRange
To uradi i radit ce

Tnx, sada je OK :slight_smile: Ali ja u tom CSV-u mogu imati beskonacan broj linija, pa ne znam kako to izvesti sa array-ima, da mi provjerava 1 i 2, 2 i 3, 3 i 4, 4 i 5, itd…

Znaci mogu imati puno linija, ne “beskonacno”, krivo sam se izrazio, pa mi treba neka petlja ili nesto da mi provjerava po 2 reda/linije, znaci kako sam naveo 1. i 2., 2. i 3., 3. i 4., 4. i 5. liniju/red, itd…

Evo ti onda kompletan php kod koji to radi :slight_smile:

Pozdrav, sorry, nisam bio za vikend doma, pa nisam mogao odgovoriti. Hvala na pomoci. Ali s ovim dobivam sljedeci rezultat:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10 - nedostaju:
9, 10, 11, 12, 13, 14, 15, 16, 17, 18 - nedostaju: 1, 2, 3, 4, 5, 6, 7, 8, 19, 20
13, 14, 15, 16, 17, 18, 19, 12, 11, 10 - nedostaju: 1, 2, 3, 4, 5, 6, 7, 8, 9, 20
5, 7, 8, 9, 12, 14, 2, 6, 1, 15 - nedostaju: 3, 4, 10, 11, 13, 16, 17, 18, 19, 20
17, 12, 13, 6, 8, 9, 7, 19, 20, 16 - nedostaju: 1, 2, 3, 4, 5, 10, 11, 14, 15, 18

Znaci opet se gleda svaki red posebno, samo sto je 1. red preskocen.
A meni treba da mi gleda brojeve po svaka 2 reda, znaci da provjerava brojeve u 1. i 2. redu i ispise pokraj 2. reda, pa onda 2. i 3. red i ispise pokraj 3. reda, pa onda 3. i 4. red i ispise pokraj 3. reda, itd…
Znaci ovako:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
9, 10, 11, 12, 13, 14, 15, 16, 17, 18 - nedostaju: 19, 20
13, 14, 15, 16, 17, 18, 19, 12, 11, 10 - nedostaju: 1, 2, 3, 4, 5, 6, 7, 8, 20
5, 7, 8, 9, 12, 14, 2, 6, 1, 15 - nedostaju: 3, 4, 20
17, 12, 13, 6, 8, 9, 7, 19, 20, 16 - nedostaju: 3, 4, 10, 11, 18

Hvala :slight_smile:

Isprika, izmjena u ovom dijelu:

“A meni treba da mi gleda brojeve po svaka 2 reda, znaci da provjerava brojeve u 1. i 2. redu i ispise pokraj 2. reda, pa onda 2. i 3. red i ispise pokraj 3. reda, pa onda 3. i 4. red i ispise pokraj 4. reda, itd…”

Do mene :slight_smile: Evo sad sam testirao sa tvojim podacima, a ne samo napamet pisao

Hvala ti majstore, to je to!

Pozdrav. Kada imam brojeve u CSV fileu odvojene sa ;

1; 2; 3; 4; 5; 6; 7; 8; 9; 10
9; 10; 11; 12; 13; 14; 15; 16; 17; 18
13; 14; 15; 16; 17; 18; 19; 12; 11; 10
5; 7; 8; 9; 12; 14; 2; 6; 1; 15
17; 12; 13; 6; 8; 9; 7; 19; 20; 16
1; 2; 3; 4; 5; 6; 7; 8; 9; 19

onda skripta daje krivi rezultat

1; 2; 3; 4; 5; 6; 7; 8; 9; 10
9; 10; 11; 12; 13; 14; 15; 16; 17; 18 - nedostaju: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
13; 14; 15; 16; 17; 18; 19; 12; 11; 10 - nedostaju: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
5; 7; 8; 9; 12; 14; 2; 6; 1; 15 - nedostaju: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
17; 12; 13; 6; 8; 9; 7; 19; 20; 16 - nedostaju: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
1; 2; 3; 4; 5; 6; 7; 8; 9; 19 - nedostaju: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20

tj. ne ispisuje brojeve koji nedosataju, nego sve brojeve od 1 do 20…

Da li se moze to kako popraviti?

Hvala i pozdrav :slight_smile:

Postavi kod kako ti sad izgleda, pretpostavljam da si ga prepravio jer sada ti je drugi delimiter :slight_smile:

Evo koda:

znaci jedino sta sam probao promijeniti je

u

ali ne pomaze, i dalje izlistava sve brojeve :frowning:

Provjeri ti taj svoj CSV fajl, jer ovaj tvoj kod kod mene radi dobro sa CSV-om kojeg si prosli put poslao, samo sam uradio replace , u ; u CSV-u…

I ja sam to napravio, isti taj file samo zamijenio “,” sa “;” i dobijem ovako:
1; 2; 3; 4; 5; 6; 7; 8; 9; 10
9; 10; 11; 12; 13; 14; 15; 16; 17; 18 - nedostaju: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
13; 14; 15; 16; 17; 18; 19; 12; 11; 10 - nedostaju: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
5; 7; 8; 9; 12; 14; 2; 6; 1; 15 - nedostaju: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
17; 12; 13; 6; 8; 9; 7; 19; 20; 16 - nedostaju: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
1; 2; 3; 4; 5; 6; 7; 8; 9; 19 - nedostaju: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20

Znaci ispisuje sve brojeve od 1 do 20, a ne samo one koji nedostaju.

Kao prvo ako koristis kod koji si postavio maloprije nema sanse da dobijes izlaz koji si sad napisao jer kako kazes u implode funkciji koristis zarez (, ) a ne (; ), dakle ne koristis kod koji si zalijepio maloprije definitivno…

Prikaci nam i csv novi jer i tu ti nesto ne stima garant :slight_smile:

Evo sefe
http://www.2shared.com/file/K-xTT2dR/csv_brojevi_2.html
:slight_smile:

Eh ovako, otvori ti taj csv svoj u notepad-u ili nekom drugom txt editoru i izbrisi navodnike na pocetku i kraju svake linije, jer to se razlikuje od onog prvobitnog csv-a i onda ce sve raditi.

Da, tako radi :slight_smile:

Ali csv mi se onda promijeni i izgleda ovako:

http://oi39.tinypic.com/mw6wxg.jpg

a treba ovako izgledati, kao prije nego maknem te navodnike u text editoru:

http://oi41.tinypic.com/sy8s5g.jpg

EDIT: Tj. ti navodnici mi se pojave kada zamijenim “,” sa “;”, pa onda ponovo saveam CSV samo pod drugim imenom. Mozda je tu neka greska??