Tömbök felépülése


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.


Rendezett tömb sorszámozva.
KulcsTartalom
0.Mondóka:
1.Répa
2.retek
3.mogyoró
4.Korán reggel,
5.rikkantott a rigó!
Egyszerű tömb karakterlánccal.
KulcsTartalom
nulladikMondóka:
elsoRépa
masodikretek
harmadikmogyoró
negyedikKorán reggel,
otodikrikkantott a rigó!
Rendezetlen tömb számokkal.
KulcsTartalom
6.Mondóka:
3;Répa
5;retek
1;mogyoró
4;Korán reggel,
2;rikkantott a rigó!

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.

  1. $rendezett = array( );
  2. $karakterlanc = array( );
  3. $rendezetlen = array( );

Következő példákban, a tömböket feltöltjük értékekkel, azaz tartalommal.

  1. $rendezett = array("Mondóka:", "Répa", "retek", "mogyoró", "Korán reggel", "rikkantott a rigó!");

  2. $karakterlanc = array("nulladik"=>"Mondóka:", "elso"=>"Répa", "masodik"=>retek", "harmadik=>"mogyoró", "negyedik"=>"Korán reggel", "otodik"=>"rikkantott a rigó!" );

  3. $rendezetlen = array(6=>"Mondóka:", 3=>"Répa", 5=>"retek", 1=>"mogyoró", 4=>"Korán reggel", 2=>"rikkantott a rigó!" );

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.

  1. $rendezett[ ] = érték;
  2. $karakterlanc[elem_kulcsa] = érték;
  3. $rendezetlen[elem_kulcsa] = érté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.

  1. A print_r utásítással, kiíratható a kiválasztott tömb teljes tartalma. (kulcs=>érték formátumban.)
  2. Az unset() függvénnyel lehet egy elemet tatalmával együtt, a tömbből törölni.
    Törlést követően a tömb nem lesz újraindexelve!
  3. Az array_values() függvénnyel tudjuk újraindexelni, ha csak egészszámú "kulcsot azaz indexet" használunk, nullától kezdve egyessével növelve.
  4. A foreach vezérlési szerkezet kifejezetten a tömbök számára jött létre. Egy egyszerű módszer, a tömbökön való végiglépkedésre.
  5.  


    A tömb eleminek sorszámozását tetszőleges értékkel indíthatjuk.

    Egytől kezdődő index
    <?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
    )
    

    Tizenegytől kezdődő index
    <?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
    )
    

     


    Tömb tartalmának kiíratása.
    <?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:

     


    Tömb tartalmának transzformálása.

    Tömb tartalmának kiíratása.
    <?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
    )
    

     


    Tömb tartalmának transzformálása, azaz átalakítása nagybetűkre.
    <?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
    )
    

     


    Tömb tartalmának transzformálása kisbetűre.
    <?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
    )