A tömbelemek kulcsa, azaz indexelése - hasonló a JavaScript vagy C alapú nyelvekhez.
Leggyakrabban használt tömbformátum, a sorszámmal rendezett.
A rendezett tömbbökben tárolt elemek sorszámozása "0"-tól kezdődnek, azaz a $tomb[0] eleme, valójában a tömb 1. eleme.
|
|
|
Tömb létrehozása, az array() nyelvi elemmel, vagy a szögletes [ ] zárójelekkel történik.
A tömböknek egyedi, tetszőleges elnevezést kell adnunk, és a név elé egy $ (dollár) jelet kell beírnunk.
1. Példa:
Az array() nyelvi elemmel történő tömb létrehozása. Nevüket jelen esetben a fenti táblázatok alapján kapják.
Következő példákban, a tömböket feltöltjük értékekkel, azaz tartalommal.
Megjegyzés:
A tömbökben szereplő elemek közül, mindig az, az első elem, melyet elsőnek beírunk.
Ez nem összekeverendő, az elem azonosítására beírt kulccsal. (lásd a rendezetlen tömböt, ahol az 1-es számmal azonosítható elem, a negyedik elemsorban található!)
2. Példa:
A szögletes [ ] zárójelekkel történő, tömb létrehozása. Nevüket jelen esetben is, a fenti táblázatok alapján kapják.
Következő példákban, a tömböket feltöltjük értékekkel, azaz tartalommal.
Rendezett tömb. $rendezett[0] = "Mondóka:"; $rendezett[1] = "Répa"; $rendezett[2] = "retek"; $rendezett[3] = "mogyoró"; $rendezett[4] = "Korán reggel,"; $rendezett[5] = "rikkantott a rigó!"; |
Tömb karakterlánccal. $karakterlanc["nulladik"] = "Mondóka:"; $karakterlanc["elso"] = "Répa"; $karakterlanc["masodik"] = "retek"; $karakterlanc["harmadik"] = "mogyoró"; $karakterlanc["negyedik"] = "Korán reggel"; $karakterlanc["otodik"] = "rikkantott a rigó!"; |
Rendezetlen tömb. $rendezetlen[6] = "Mondóka:"; $rendezetlen[3] = "Répa"; $rendezetlen[5] = "retek"; $rendezetlen[1] = "mogyoró"; $rendezetlen[4] = "Korán reggel,"; $rendezetlen[2] = "rikkantott a rigó!"; |
Fentebb, kettő példát is láthattunk, egyszerű tömbök létrehozására.
Az, hogy ki melyik megoldást választja, rá van bízva, mert a program szempontjából teljesen mindegy.
Értékek, azaz adatok kinyerése a tömbökből.
Bármelyik tömbből, tetszőleges adatot úgy tudunk kinyerni, vagy kiíratni, ha beírjuk a tömb nevét, majd ezt követően a szögletes zárójelbe írjuk az elem kulcsát, azaz indexét.
A kiválasztott elem értékével további feladatokat tudjunk végezni, egy tetszőleges elnevezésű változóhoz kell rendelnünk.
Értékek, azaz adatok módosítása.
Bármelyik tömbben, tetszőleges adatot úgy tudunk módosítani, ha beírjuk a tömb nevét, majd ezt követően a szögletes zárójelbe írjuk a módosítandó elem kulcsát, azaz indexét, és egyenlőségjelet követően beírjuk az új értéket. Ezzel a régi érték törlődik, és az új értéket fogja tárolni az aktuális elem.
Egy programon belül, tetszőleges számú tömböt helyezhetünk el, de mindegyiknek más és más elnevezéssel kell szerepelni.
PHP-ben nincs külön indexelt és asszociatív tömb típus, csak egyféle tömb típus van, és tartalmazhat mind egész mind string indexeket.
Az érték bármilyen típusú lehet.
Ha nem adunk meg kulcsot egy adott értékhez, akkor annak a kulcsa az egész típusú indexek maximuma + 1 lesz.
Ha olyan kulcsot adunk meg, amelyhez már létezik hozzárendelt érték, az érték felül lesz írva.
Néhány hasznos függvény, a tömbökkel való munka megkönnyítésére.
Ezek gyakorlati alkalmazásának bemutatásával, külön témakörben foglalkozunk.
<?php $elsonegyed = array(1 => 'Január', 'Február', 'Március'); echo"<pre>"; print_r($elsonegyed); echo"<pre>"; ?> |
Programunk a következő kimenetet adja:Array ( [1] => Január [2] => Február [3] => Március ) |
<?php $negyediknegyed = array(11 => 'Október', 'November', 'December'); echo"<pre>"; print_r($negyediknegyed); echo"<pre>"; ?> |
Programunk a következő kimenetet adja:Array ( [11] => Október [12] => November [13] => December ) |
<?php $koretek = array('alma', 'zöldség', 'tök', 'eper'); foreach ($koretek as $koret) { echo "Szereted a(z) $koret köretet?<br />"; } ?> |
Programunk a következő kimenetet adja: Szereted a(z) alma köretet? Szereted a(z) zöldség köretet? Szereted a(z) tök köretet? Szereted a(z) eper köretet? |
A foreach ciklussal jelenleg, közvetlenül nem lehet módosítani, transzformálni a tömb elemeinek értékét.
A problémát a következőképpen tudjuk megkerülni:
<?php foreach ($koretek as $kulcs => $koret) echo"<pre>"; print_r($koretek); echo"</pre>"; ?> |
Array ( [0] => alma [1] => zöldség [2] => tök [3] => eper ) |
<?php foreach ($koretek as $kulcs => $koret) { $koretek[$kulcs] = strtoupper($koret); // Így, módosítja a tömböt nagybetűsre } echo"<pre>"; print_r($koretek); echo"</pre>"; ?> |
Array ( [0] => ALMA [1] => ZöLDSéG [2] => TöK [3] => EPER ) |
<?php foreach ($koretek as $kulcs => $koret) { $koretek[$kulcs] = strtolower($koret); // Módosítja a tömböt, kisbetűsre } echo"<pre>"; print_r($koretek); echo"</pre>"; ?> |
Array ( [0] => alma [1] => zöldség [2] => tök [3] => eper ) |