IF Judge to convert the FOR statement
if($page>0 && $page<11){$i=1;$pages=10;if($c<11){$pages=$c;}}elseif($page>10 && $page<21){$i=11;$pages=20;if($c<21){$pages=$c;}}elseif($page>20 && $page<31){$i=21;$pages=30;if($c<31){$pages=$c;}}elseif($page>30 && $page<41){$i=31;$pages=40;if($c<41){$pages=$c;}}elseif($page>40 && $page<51){$i=41;$pages=50;if($c<51){$pages=$c;}}elseif($page>50 && $page<61){$i=51;$pages=60;if($c<61){$pages=$c;}}elseif($page>60 && $page<71){$i=61;$pages=70;if($c<71){$pages=$c;}}elseif($page>70 && $page<81){$i=71;$pages=80;if($c<81){$pages=$c;}}elseif($page>80 && $page<91){$i=81;$pages=90;if($c<91){$pages=$c;}}
Note:
$ I is the start page
$ Page: end page
$ C indicates the total number of pages.
Effect:
Page code does not need to be changed for loop output
Reply to discussion (solution)
// Known, $ page = 90; $ c = 98; // unknown, to determine $ pages = 0; $ I = 0; // $ max_pages = $ page; // to prevent the $ page from being too large, it is best to set it to a fixed value $ max_page = 90; for ($ index = 0; $ index <$ max_page; $ index + = 10) {if ($ page> $ index & $ page <$ index + 11) {$ I = $ index; $ pages = $ index + 10; if ($ c <= $ pages) $ pages = $ c; // do not consider $ I? Break ;}} echo '$ I ='. $ I. '; $ pages ='. $ pages;
In fact, you don't need to use.
// Known, $ page = 90; $ c = 98; // unknown, to determine $ pages = 0; $ I = 0; $ I = intval ($ page-1)/10) * 10; if ($ I> 0) $ pages = $ I + 10; if ($ c <= $ pages) $ pages = $ c; echo '$ I = '. $ I. '; $ pages = '. $ pages;
$i = floor(($page-1)/10)*10+1;$pages=$page;
Pages must be changed to c
$i = floor(($page-1)/10)*10+1; $pages=$c;
Changing to FOR does not require a fixed number of pages
No fixed value is provided.
$ Page = 90; $ c = 98;