Next és a prev függvények

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.

 


A mutatót, az első tömbelem utáni pozícióba mozgatjuk.
Eredményül, a tömbbe másodikként beírt elem indexét és tartalmát írathatjuk ki.
<?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

 


Pozíciómutató, a harmadikként beírt tömbelem után legyen.
<?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.

 


Pozíciómutató visszamozgatása, a tömbelemek között.
<?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

 


Pozíciómutató visszamozgatása, kettő pozícióval.
<?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.

Pozíciómutató oda-vissza mozgatása.
<?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
Tartalma = Kukorica