Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] - problem ze zrozumieniem skryptu
Forum PHP.pl > Forum > Przedszkole
pangeon
Jestem początkującym, jestem na etapie nauki czytania kodu PHP.

W tej korzystam z podręcznika "Praktyczne Projekty PHP" W. Gazdy.
Owy Pan przedstawia w jednym z listingów książki następujący skrypt:

  1. <table>

  1. <?php
  2. $kody = array('00', '33', '66', '99', 'CC', 'FF');
  3. $kolory = array();
  4. for ($i = 0; $i < 6; $i++) {
  5. for ($j = 0; $j < 6; $j++) {
  6. for ($k = 0; $k < 6; $k++) {
  7. $kolory[] = $kody[$i] . $kody[$j] . $kody[$k];
  8. }
  9. }
  10. }
  11. $kolumny = 6;
  12. $ile = count($kolory);
  13. for ($i = 0; $i < $ile; $i++) {
  14. if ($i % $kolumny == 0) {
  15. echo '<tr>' . "\n";
  16. }
  17. echo '<td class="kolor" style="background: #';
  18. echo $kolory[$i];
  19. echo '">';
  20. echo '</td>' . "\n";
  21. echo '<td>';
  22. echo $kolory[$i];
  23. echo '</td>' . "\n";
  24. if ($i % $kolumny == $kolumny - 1) {
  25. echo '</tr>' . "\n";
  26. }
  27. }
  28. ?>

  1. </table>


Mniej więcej rozumiem jak zostaje wegerowana ta tabelka, moje zdziwienie budzą tylko z warunki z modulo

  1. if ($i % $kolumny == 0) {
  2. echo '<tr>' . "\n";


oraz

  1. if ($i % $kolumny == $kolumny - 1) {
  2. echo '</tr>' . "\n";


Jak mam to czytać i jak to się dzieje, że tabela zostaje pogrupowana w kolumny?
peter13135
0%6 = 0
1%6 = 1
2%6 = 2
3%6 = 3
4%6 = 4
5%6 = 5
6%6 = 0
7%6 = 1
itd.

Jak widać, 0 pojawia się co szósty raz (co szósty, bo $kolumna=6)

Po prostu co szósty "przebieg pętli", dodawane jest <tr> <td>dane</td><td>inne dane </td> </tr>
a w pozostałych "przebiegach" są dodawane same komórki, bez tr'ów
pangeon
Problem chyba jest w tym, że nie bardzo rozumiem, co oznacza dokładnie operator mudolu.
0 podzielone przez 6 nie daje reszty, ale 1 podzielone 6 też nie. Żle myślę?

Niemniej dziękuje za pomoc, postaram się dokładniej zdadać problem smile.gif

pozdr.
peter13135
Cytat
0 podzielone przez 6 nie daje reszty, ale 1 podzielone 6 też nie

0 dzielone przez 6, daje resztę 0
1 dzielone przez 6 daje resztę 1

Nie ma tak, że "nie dają resztę", zawsze jest reszta, może być ona równa 0, lub mieć inną wartośc dodanią.
pangeon
By nie wyjść na idiotę, dodam tylko, że matematyka się przydaje humonistom - programistom tongue.gif

0:6 to 0 ale 1:6 to 1 bo:

1 : 6 = 0, reszty 1

1 = 0 · 6 + 1


Jakby ktoś miał podobny problem, proszę sprawdzić.
http://www.math.edu.pl/narzedzia.php?opcja=podzielnosc-liczb

albo napisać sobie echo wyświetlające modulo

Dodam tylko, że z innymi rzeczami radzę sobie tongue.gif

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.