PHP függvényekkel ismétlődő sorozat és tömbkészítést hogy lehet megcsinálni?
adott egy szépen működő php kódom. de ha pl meg akarok változtatni benne egy felsorolás szerű kódot akkor nem szeretnék manuálisan pötyögni egy csomót ha azt egy függvénnyel is ki tudom váltani.
látszik a listán hogy ismétlődik és speciel most csak 24-szer van leírva ugyan az a kiszámolható tömbelem de képzeljünk el olyan listákat is ahol 50-ig vagy 100-ig meg a számláló, és ha azon a tömbön meg kell változtatni valamit akkor végig kell írni újra az egészet.
szóval egy olyan függvény kellene ami egy visszamenő pontig addig ismételi az értékeket és műveleteket, amíg egy megadott számot, jelen esetben 24 tömbelemet el nem ér
<?php
$ff = $_GET['ff'];
$kulcs = substr($ff, 0, 2);
if ($kulcs==01) print "1-50 ";
if ($kulcs<>01) print '<a href="listazo.php?ff=01_01x50_0000-0500_00" target="_top">1-50</a> ';
if ($kulcs==02) print "51-100 ";
if ($kulcs<>02) print '<a href="listazo.php?ff=02_51x00_0000-0500_00" target="_top">51-100</a> ';
if ($kulcs==03) print "101-150 ";
if ($kulcs<>03) print '<a href="listazo.php?ff=03_01x50_0000-0500_01" target="_top">101-150</a> ';
if ($kulcs==04) print "151-200 ";
if ($kulcs<>04) print '<a href="listazo.php?ff=04_51x00_0000-0500_01" target="_top">151-200</a> ';
if ($kulcs==05) print "201-250 ";
if ($kulcs<>05) print '<a href="listazo.php?ff=05_01x50_0000-0500_02" target="_top">201-250</a> ';
if ($kulcs==06) print "251-300 ";
if ($kulcs<>06) print '<a href="listazo.php?ff=06_51x00_0000-0500_02" target="_top">251-300</a> ';
if ($kulcs==07) print "301-350 ";
if ($kulcs<>07) print '<a href="listazo.php?ff=07_01x50_0000-0500_03" target="_top">301-350</a> ';
if ($kulcs==08) print "351-400 ";
if ($kulcs<>08) print '<a href="listazo.php?ff=08_51x00_0000-0500_03" target="_top">351-400</a> ';
if ($kulcs==09) print "401-450 ";
if ($kulcs<>09) print '<a href="listazo.php?ff=09_01x50_0000-0500_04" target="_top">401-450</a> ';
if ($kulcs==10) print "451-500 ";
if ($kulcs<>10) print '<a href="listazo.php?ff=10_51x00_0000-0500_04" target="_top">451-500</a> ';
print "<br>";
if ($kulcs==11) print "501-550 ";
if ($kulcs<>11) print '<a href="listazo.php?ff=11_01x50_0500-1000_05" target="_top">501-550</a> ';
if ($kulcs==12) print "551-600 ";
if ($kulcs<>12) print '<a href="listazo.php?ff=12_51x00_0500-1000_05" target="_top">551-600</a> ';
if ($kulcs==13) print "601-650 ";
if ($kulcs<>13) print '<a href="listazo.php?ff=13_01x50_0500-1000_06" target="_top">601-650</a> ';
if ($kulcs==14) print "651-700 ";
if ($kulcs<>14) print '<a href="listazo.php?ff=14_51x00_0500-1000_06" target="_top">651-700</a> ';
if ($kulcs==15) print "701-750 ";
if ($kulcs<>15) print '<a href="listazo.php?ff=15_01x50_0500-1000_07" target="_top">701-750</a> ';
if ($kulcs==16) print "751-800 ";
if ($kulcs<>16) print '<a href="listazo.php?ff=16_51x00_0500-1000_07" target="_top">751-800</a> ';
if ($kulcs==17) print "801-850 ";
if ($kulcs<>17) print '<a href="listazo.php?ff=17_01x50_0500-1000_08" target="_top">801-850</a> ';
if ($kulcs==18) print "851-900 ";
if ($kulcs<>18) print '<a href="listazo.php?ff=18_51x00_0500-1000_08" target="_top">851-900</a> ';
if ($kulcs==19) print "901-950 ";
if ($kulcs<>19) print '<a href="listazo.php?ff=19_01x50_0500-1000_09" target="_top">901-950</a> ';
if ($kulcs==20) print "951-1000 ";
if ($kulcs<>20) print '<a href="listazo.php?ff=20_51x00_0500-1000_09" target="_top">951-1000</a> ';
if ($kulcs==21) print "1001-1050 ";
if ($kulcs<>21) print '<a href="listazo.php?ff=21_01x50_1000-1197_10" target="_top">1001-1050</a> ';
if ($kulcs==22) print "1051-1100 ";
if ($kulcs<>22) print '<a href="listazo.php?ff=22_51x00_1000-1197_10" target="_top">1051-1100</a> ';
if ($kulcs==23) print "1101-1150 ";
if ($kulcs<>23) print '<a href="listazo.php?ff=23_01x50_1000-1197_11" target="_top">1101-1150</a> ';
if ($kulcs==24) print "1151-1197 ";
if ($kulcs<>24) print '<a href="listazo.php?ff=24_51x97_1000-1197_11" target="_top">1151-1197</a> ';
?>
Azt azért nem merném mondani, hogy fejezd be kedves kérdező. :)
A sok kódból azt gondolom, hogy érdekel a téma, és így legalább egyedül tanulod meg a dolgokat... De egy PHP 24 óra alatt vagy hasonló könyvbe belekukkanthatsz, ha akarsz. :D
ha a végeredményre vagytok kíváncsiak akkor így néz ki egy képgaléria oldal nálam eddig :
szóval 50 kisképet jelenít meg egy oldalon és összesen 1197 fotó van a képgalériában.
menu.php :
<?php
$oldal = $_GET['oldal'];
$ciklus = 1;
do {
$szoveg_01 = ((($ciklus-1)*50)+1)."-".($ciklus*50)." ";
if ($ciklus==$oldal) print $szoveg_01;
if ($ciklus<>$oldal) {
print '<a href="kepgaleria.php?oldal=';
print $ciklus;
print '" target="_top">'.$szoveg_01.'</a> ';
}
++$ciklus;
} while ($ciklus < 24);
if ($ciklus==$oldal) print "1151-1197 ";
if ($ciklus<>$oldal) print '<a href="kepgaleria.php?oldal=24" target="_top">1151-1197</a> ';
?>
---------------------------------------------
kepgaleria.php :
<?php
include ("fej.php");
print "<br><br>";
include ("cimkek.php");
print "<center>";
print "<br><br>";
include ("menu.php");
print "<br><br>";
$oldal = $_GET['oldal'];
$ciklus = ($oldal*50)-49;
$ciklus_vege = ($oldal*50)+1;
if ($oldal<=25) $mappa = "1000-1197";
if ($oldal<=20) $mappa = "0500-1000";
if ($oldal<=10) $mappa = "0000-0500";
if ($oldal==24) $ciklus_vege = 1198;
do {
$szamol_01 = $ciklus;
$a1ezresek = substr($szamol_01, -4, -3);
$a2szazasok = substr($szamol_01, -3, -2);
$a3tizesek = substr($szamol_01, -2, -1);
$a4egyesek = substr($szamol_01, -1, 1);
if ($a1ezresek==false) $a1ezresek=0;
if ($a2szazasok==false) $a2szazasok=0;
if ($a3tizesek==false) $a3tizesek=0;
if ($a4egyesek==false) $a4egyesek=0;
$eredmeny_01 = $a1ezresek.$a2szazasok.$a3tizesek.$a4egyesek;
print "<a";
print ' href="kep.php?id='.$eredmeny_01.'" target="_blank"><img';
print ' src="Galeria/'.$mappa.'/kicsi/'.$eredmeny_01.'.jpg"></a> ';
++$ciklus;
} while ($ciklus < $ciklus_vege);
print "<br><br>";
include ("menu.php");
print "<br><br>";
include ("utotag.php");
?>
</center>
</body>
<html>
Ez sokkal szebb, mint az eddigiek.
Nagyon ügyes vagy, hogy ezt magadtól megcsináltad szinte nulláról indulva! Még szinte irigyellek is érte. :)
Csak így tovább!
Nem foglak megdicsérni, mert még nem érdemled ki.
"
$ciklus = 1;
do {
$szoveg_01 = ((($ciklus-1)*50)+1)."-".($ciklus*50)." ";
if ($ciklus==$oldal) print $szoveg_01;
if ($ciklus<>$oldal) {
print '<a href="kepgaleria.php?oldal=';
print $ciklus;
print '" target="_top">'.$szoveg_01.'</a> ';
}
++$ciklus;
} while ($ciklus < 24); "
Na most ezzel csak egy dolog van: az, hogy (idézzem a matektanáromat) bugacpusztai megoldás. (Nem pejoratív, arra utal a kifejezés, hogy lehet ezt elegánsabban is.)
Miért mondom én ezt? Csak azért, mert egy hátultesztelő ciklust használsz, ahol a ciklusfeltételben (tov. CF) változót csak inkrementálod minden lépésben.
Következésképpen ez egy növekményes ciklus (egyes tájakon for-ciklusnak gúnyolják.)
Többet nem mondok, remélem megmozgattam a fantáziád. :D
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!