[PHP] Dzielenie modulo

Wyznaczanie reszty z dzielenia jednej liczby przez drugą, czyli tak zwane modulo. W PHP resztę z dzielenia dwóch liczb całkowitych otrzymamy przez działanie $r = $a % $b;, gdzie $r to reszta z dzielenia $a przez $b. Jak widać w takim działaniu używany jest operator %. Do czego może mi się to przydać? A no do wielu rzeczy.

Zero reszty z dzielenia modulo

Weźmy na ten przykład listę czegoś, np. listę produktów, którą chcemy wyświetlić na stronie, ale po każdych 5 produktach ma się pojawić większy odstęp. Czyli wyświetlamy 5 produktów, odstęp, kolejne 5, odstęp itd. Aby zrobić taki myk (zakładając, że dane wyświetlamy pętlą, np. foreach), należy przed rozpoczęciem pętli utworzyć zmienną z wartością początkową równą 0, np. $n = 0;. Następnie już w pętli stosujemy inkrementację zmiennej $n, czyli $n++; i wyznaczamy resztę $n = ($n % 5);. Zmienną $n dzielimy przez 5 (po 5 produktach ma być odstęp). Pewnie już się domyślasz, że zależy w tym przykładzie na reszcie z dzielenia równej 0. Dla podzielnych przez 5 reszta z dzielenia przez 5 wyniesie 0, a kolejna inkrementacja $n rozpocznie się znów od 0. Operacja ta będzie się powtarzać aż do momentu przerwania pętli. Teraz wracając do naszej listy produktów zobaczmy poniższy przykład:

$products = ['telewizor, 'głośniki', 'wieża', 'pralka', 'suszarka', 'gofrownica', 'zmywarka', 'radio', 'odkurzacz', 'malakser'];

$n = 0;

foreach($products as $product)

{

$n++;
$n = ($n % 5);

echo $product . '<br />';
if($n === 0) echo '<br /><br /><br />'; // O ile warunek zostanie spełniony, czyli jeśli $n będzie równa 0 wyświetlamy odstęp po 5 produktach.

}

Jak widać na powyższym przykładzie jeśli $n == 0 wyświetlamy dodatkowy odstęp po wyświetleniu każdorazowo 5 produktów. To tylko przykład do czego może w praktyce przydać się dzielenie modulo przy pisaniu skryptów.

Komentarze

Popular

[C++] Jak obliczyć pole i obwód trapezu?

[HTML] Jak wyśrodkować tekst?

[PHP] Jak pobrać adres strony?