A tömbelemek bejárásakor, hogy éppen melyik tömbelemnél tart a program, a PHP egy mutató (pozíciómutató) segítségével követi nyomon.
A mutató aktuális pozícióját, beállíthatjuk a next és a prev függvényekkel.
Mutatót előre a next mozgatja.
Mutatót vissza a prev mozgatja.
Kiíratásnál, azaz eredményül azon tömbelem indexét és tartalmát kapjuk vissza, mely elé, beállítottuk a pozíciómutatót.
<?php $tomb_elem[4]="Alma"; $tomb_elem[1]="Kapa"; $tomb_elem[93]="Dinnye"; $tomb_elem[24]="Retek"; $tomb_elem[]="Labda"; // Indexértéke autómatikusan 94 lesz. // Az aktuális tömbindex és az ehhez tartozó tömbérték ellenőrzése előtt, // meghívjuk a next() függvényt. next($tomb_elem); //Mutatót, az első tömbelem utáni pozícióba mozgatjuk. $aktualis_indexertek= key($tomb_elem); echo ("A key() függvény eredménye = ".$aktualis_indexertek."<br />"); $aktualis_tartalom= current($tomb_elem); echo ("A current() függvény eredménye = ".$aktualis_tartalom."<br />"); ?> |
Programunk eredménye: A tömbbe, másodikként beírt elem indexe és tartalma. A key() függvény eredménye = 1 A current() függvény eredménye = Kapa |
<?php $tomb_elem[4]="Alma"; $tomb_elem[1]="Kapa"; $tomb_elem[93]="Dinnye"; $tomb_elem[24]="Retek"; $tomb_elem[]="Labda"; // A pozíciómutató mozgatása következik next($tomb_elem); // Az első tömbelem utáni pozícióba. next($tomb_elem); // A második tömbelem utáni pozícióba. next($tomb_elem); // A harmadik tömbelem utáni pozícióba. $aktualis_indexertek= key($tomb_elem); echo ("A key() függvény eredménye = ".$aktualis_indexertek."<br />"); $aktualis_tartalom= current($tomb_elem); echo ("A current() függvény eredménye = ".$aktualis_tartalom."<br />"); ?> |
Programunk eredménye: A tömbbe, negyedikként beírt elem indexe és tartalma. A key() függvény eredménye = 24 A current() függvény eredménye = Retek |
Előző programunkkal előremozgattuk a harmadikként beírt tömbelem mögé, a mutató pozícióját.
Következő programunkkal, a jelenlegi pozíciótól visszafelé mozgatjuk a mutatót.
<?php $tomb_elem[4]="Alma"; $tomb_elem[1]="Kapa"; $tomb_elem[93]="Dinnye"; $tomb_elem[24]="Retek"; $tomb_elem[]="Labda"; // A pozíciómutató mozgatása, vissza egy tömbelemnyit. prev($tomb_elem); $aktualis_indexertek= key($tomb_elem); echo ("A key() függvény eredménye = ".$aktualis_indexertek."<br />"); $aktualis_tartalom= current($tomb_elem); echo ("A current() függvény eredménye = ".$aktualis_tartalom."<br />"); ?> |
Programunk eredménye: A tömbbe, harmadikként beírt elem indexe és tartalma. A key() függvény eredménye = 93 A current() függvény eredménye = Dinnye |
<?php $tomb_elem[4]="Alma"; $tomb_elem[1]="Kapa"; $tomb_elem[93]="Dinnye"; $tomb_elem[24]="Retek"; $tomb_elem[]="Labda"; // A pozíciómutató mozgatása vissza, kettő pozícióval. prev($tomb_elem); prev($tomb_elem); $aktualis_indexertek= key($tomb_elem); echo ("A key() függvény eredménye = ".$aktualis_indexertek."<br />"); $aktualis_tartalom= current($tomb_elem); echo ("A current() függvény eredménye = ".$aktualis_tartalom."<br />"); ?> |
A key() függvény eredménye = 1 A current() függvény eredménye = Kapa |
Ha a programunk tömbjében tárolt elemek száma megsokszorozódik,
akkor a next és prev pozíciómutató utasításokat igen sokszor be kellene írnunk,
egy adott elem információinak lekérdezésére.
Ebben az esetben, megkönnyíti dolgunkat, ha elhelyezünk egy for ciklust,
mellyel megkíméljük magunkat a sok-sok programmódosítástól.
Természetesen az sem árt, ha meggyőződünk a tömbünkben lévő elemek számáról a count() függvénnyel,
hogy a már nem létező elemekre, ne keressünk rá feleslegesen.
<?php $elem[4]="Alma"; // 0. $elem[1]="Répa"; // 1. $elem[93]="Dinnye"; // 2. $elem[24]="Retek"; // 3. $elem[55]="Körte"; // 4. $elem[43]="Szílva"; // 5. $elem[14]="Eper"; // 6. $elem[83]="Tök"; // 7. $elem[34]="Kukorica"; // 8. $elem[65]="Kender"; // 9. // Tömbünk, mennyi elemet tartalmaz? $elemek_szama = count($elem); echo "Tömbben tárolt elemek száma: ".$elemek_szama."<br />"; // A tömbünkbe, hányadikként beírt elemet írassuk ki? $hanyadik=8; // A tömbünkbe elsőként beírt elem a "0-ik" echo ("<p><u>Tömbünk ".$hanyadik.". elemének információi:</u></p>"); for ($i=0; $i<$hanyadik; $i++){ next($elem); } $aktualis_indexertek= key($elem); echo ("<p><b>Índexszáma =</b> ".$aktualis_indexertek."<br />"); $aktualis_tartalom= current($elem); echo ("<b>Tartalma =</b> ".$aktualis_tartalom."</p>"); ?> |
Programunk eredménye:
Tömbben tárolt elemek száma: 10
Tömbünk 8. elemének információi: Índexszáma = 34 |