[PHP]pętla wyświetla nie wszystkie powtórzenia |
[PHP]pętla wyświetla nie wszystkie powtórzenia |
6.10.2021, 15:14:56
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 476 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) |
Pomóżcie bo zaraz w głowę dostanę...
Mam taki oto plik: Kod 0,0;1,3;0,0;2,2;4,4;0,0! 1,1;3,3;0,1! 2,2;2,2;1,1 Jak widać, są to 3 linijki, każda ma po kilka par cyfr. Cyfry oddzielone od siebie przecinkiem a pary średnikiem. Linijki oddzielone od siebie wykrzyknikiem. Ten plik ładuję do zmiennej $cells_from_file Następnie rozdzielam za pomocą explode i foreach na części pierwsze. Te cyfry to numery w tablicy $xlsx_file. Czyli dla przykładu pierwsza para, tj 0,0 oznacza nic innego jak $xlsx_file[0][0], para 1,3 oznacza $xlsx_file[1][3] itd. Zawartość każdej linijki ma pójść do odzielnego pliku. Trzy linijki czyli 3 pliki. Wszystko świetnie działa, oprócz tego że dla pierwszego pliku ładnie wrzuca 6 wartości, bo jest 6 par oddzielonych średnikiem a dla każdego kolejnego powtórzenia pętli (każdego kolejnego pliku) nie wrzuca wartości pierwszej pary, czyli 1,1 oraz 2,2 są pominięte. Kwaaa czemu?! Pierwszy explode rozbija na oddzielne linijki, dzieląc po wykrzykniku. Następnie kolejny explode w pętli dla każdej linijki rozbija wg średnika. Koljeny wg przecinka. Następnie składana jest zmienna $a która będzie koordynatami w tablicy $xlsx_file, z której to dane wrzucane są do $cells_small i odzielane od siebie podwójnym równa się. I to wędruje do pliku 1.txt, potem 2.txt i tak dalej tyle razy ile linijek w pliku z cyframi.
Dzięki z góry. Ten post edytował sadistic_son 6.10.2021, 15:19:48 -------------------- Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami... -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc! -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- |
|
|
6.10.2021, 15:20:14
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
O matko
$j=0; $a=''; $a=array(); foreach($seperate_colls as $so){ $a[$j]=$so; $j++; } $first=$a[0]; $second=$a[1]; powaznie? A czemu pooprostu nie: $first=$seperate_colls[0]; $second=$seperate_colls[1]; ? A najlepiej $first=(int)$seperate_colls[0]; $second=(int)$seperate_colls[1]; Bo pewnie tam jeszcze jakies smieci siedza. A najlepiej na przyszlosc uzywaj var_dump na wszystkim czego uzywasz to unikniesz takich niespodzianek -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
6.10.2021, 15:22:50
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 476 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) |
No dobra, rzeczywiście to było niepotrzebne. Zrobiłem jak piszesz. Ale to nie rozwiązuje problemu
EDIT: ok, to rozwiązuje problem
Ale dlaczego? Nie rozumiem. Proszę o wyjaśnienie. Ten post edytował sadistic_son 6.10.2021, 15:24:30 -------------------- Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami... -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc! -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- |
|
|
6.10.2021, 15:32:21
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
Najzwyklej w swiecie masz tam biale znaki, chocby \r \n
Dlatego uzywaj zawsze VAR_DUMP zamiast z byle pierda latac na forum I pamietaj, "!" nie sluzy do odzielania lini, tylko wlasnie znak nowej lini \r\n -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
6.10.2021, 15:32:57
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
I poza tym po co te wykrzykniki na końcu? Bierzesz file() z odpowiendnimi flagami i od razu masz w tablicy co trzeba.
-------------------- |
|
|
6.10.2021, 15:54:31
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 476 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%) |
Aaa, no tak, zkani nowej lini były w zmiennej. Racja. Dzięki!
A dzielę po wykrzyknikach dlatego, że plik czasem będzie miał więcej niż jeden wykrzyknik na końcu to wtedy dla każdego wykrzyknika ponad jeden ma też utworzyć plik. -------------------- Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami... -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc! -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- |
|
|
6.10.2021, 16:02:51
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 455 Pomógł: 6292 Dołączył: 27.12.2004 |
Cytat że plik czasem będzie miał więcej niż jeden wykrzyknik na końcu to wtedy dla każdego wykrzyknika ponad jeden ma też utworzyć plik. Rownie dobrze zamiast wykrzyknika moze byc poprostu kolejna pusta linia .Wydaje sie bardziej czytelne niz jakies wykrzykniki -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
Wersja Lo-Fi | Aktualny czas: 23.04.2024 - 22:02 |