Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]pętla wyświetla nie wszystkie powtórzenia
sadistic_son
post
Post #1





Grupa: Zarejestrowani
Postów: 1 495
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.
  1. $seperate_files=explode('!',$cells_from_file);
  2. $i=1;
  3. $k=0;
  4. foreach($seperate_files as $sf){
  5. $cells_small='';
  6. $seperate_cells=explode(';',$sf);
  7. foreach($seperate_cells as $sc){
  8. $seperate_colls=explode(',',$sc);
  9. $j=0;
  10. $a='';
  11. $a=array();
  12. foreach($seperate_colls as $so){
  13. $a[$j]=$so;
  14. $j++;
  15. }
  16.  
  17. $cells_small.=$xlsx_file[$a[0]][$a[1]];
  18. $cells_small.='==';
  19. echo " K:$k --- "; $k++;
  20. echo " cells small: $cells_small <br >";
  21. }
  22. echo "plik: $cells_small <br>";
  23. file_put_contents("uploads/$i.txt",$cells_small);
  24. $i++;
  25. }


Dzięki z góry.

Ten post edytował sadistic_son 6.10.2021, 15:19: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: 3.10.2025 - 01:27