...:::Programozz kedvedre!:::...
Men
 
HTML
 
PHP
 
Tmbk

Elz fejezetnkben megismertk a vltozkat. Gyakran szksges, hogy a vltozinkat csoportokba rendezzk, listzzuk, amiket aztn kzs nven is megszlthatunk. Nagyon leegyszerstve ezeket nevezzk tmbknek.
A tmbk teht a adatainkat rendezett csoportokban troljk. Minden tmbnek van egy neve, valamint az egyes tmbelemeknek is van egy sajt azonostjuk a tmbn bell - ezt kulcsoknak, vagy tmbindexeknek nevezzk. Az egsz tmbt annak nevvel, az egyes adatokat a tmb nevvel s a tmbelem klcsval tudjuk elrni.
Az egyes tmbelemekben trolhatunk integer, float, string, boolean tpus adatokat, vagy akr teljes tovbbi tmbket is. gy tbb egymsba ptett tmbbel egy "fa szerketet" is lekpezhetnk.

A tmbelemek azonostjaknt megadhat nem negatv egsz szm (integer), vagy egy karaktersor (string). Ennek megfelelen lteznek norml (numerikus) s asszociatv tmbk. A norml tmbknl ezt az azonostt a tmb indexnek, mg asszociatv tmbknl a kulcsnak szoktuk nevezni.

norml (numerikus) tmbk

Alaprtelmezs szerint a tmbket szmokkal indexeljk. A tmb tartalmazhat tetszleges szm tmbelemet, amiknek van egyedi indexk s minden tmbelembe sajt rtket tlthetnk. A tmbelemeket vesszvel kell elvlasztani egystl.

Fontos megjegyezni:
Automatikusan generlt tmbindexeknl az els elem indexe mindig 0 lesz. Teht egy 5 elemes folyamatosan (kihagys nlkl) indexelt tmb utols elemnek indexe nem 5, hanem 4 lesz.

Tmb ltrehozsa:
Numerikus tmbt ktfle mdon hozhatunk ltre:

1. Ltezik erre a clra az array() nyelvi elem, melyet az albbi mdon hasznlunk:

<?php

$egy_tomb = array (0 => "ez", 1 => "az", 2 => "amaz");

?>

Csak a numerikus tmbknl, ha a tmbindexek folyamatosan kvetik egymst - pl. egyszer listzsnl - ennek a meghatrozsnak ltezik egy rvidebb formja, ahol az indexeket a PHP adja hozz:

<?php

$egy_tomb = array ("ez", "az", "amaz");

?>

2. Megadhatjuk a tmbelemeket egyesvel is, szgletes zrjelek hasznlatval:

<?php

$egy_tomb[0] = "ez";
$egy_tomb[1] = "az";
$egy_tomb[2] = "amaz";

?>

Meglv tmbhz j elemet is ezzel a szgletes zrjeles formval lehet felvenni:

<?php

$egy_tomb[3] = "ez egy j elem";

?>

Ugyanezzel a formval lehet egy tmbelem rtkt fellrni is.

Termszetesen nem szksges az indexeknek folyamatosan kvetnik egymst, azokat tetszs szerint hatrozhatjuk meg. Ha azonban egy j tmbelemnek nem adjuk meg az indext, a PHP automatikusan az abban a tmbben ltez legnagyobb tmbindexnl eggyel nagyobb indexet ad neki. A fenti pldnk teht egyenrtk ezzel:

<?php

$egy_tomb[] = "ez egy j elem";

?>

Tmbelemek elrse:
A tmbelemeket a tmb nevvel s a keresett tmbelem indexvel lehet elrni (Itt persze mindig szksges megadni a krdezett elem indext is):

<?php

print ($egy_tomb[2]);   // kirja a 2-es index tmbelem rtkt

?>

Egy tmbelem trlse:
A tmb egy elemt az unSet() fggvnnyel (ez is a PHP beptett fggvnye) trlhetjk. Ilyenkor a megmarad tmbelemek indexe nem vltozik meg.

<?php

unSet ($egy_tomb[1]);   // trljk az 1 index tmbelemet rtkt

?>

fel...

asszociatv tmbk

Az asszociatv tmb elemeinek kulcsa egy karaktersor (string) lehet, a tmbelemek rtke pedig a trolni kvnt adatunk.

Tmb ltrehozsa:
Asszociatv tmbt is ktfle mdon hozhatunk ltre:

1. Az array()tnyelvi elem segtsgvel, amely szmos vesszvel elvlasztott kulcs => rtk prt vr.

<?php

$egy_tomb = array ("1.kulcs" => "1.rtk", "2.kulcs" => "2.rtk");

?>

Ez egy konkrt pldban gy nz ki:

<?php

$egy_tomb = array ( "nev" => "Kiss Bla",
                    "cim" => "Nekeresdfalva",
		    "tel" => "06 20/123 456");

?>

2. Ltrehozhatunk tmbt kzvetlen rtkadssal is:

<?php

$egy_tomb["nev"] = "Kiss Bla";
$egy_tomb["cim"] = "Nekeresdfalva";
$egy_tomb["tel"] = "06 20/123 456";

?>

Az egyes elemek elrse s trlse mr hasonlan mkdik, mint az egyszer (numerikus) tmbknl.

Egy tmb egyszerre tartalmazhat szmokkal s karaktersorokkal indexel tmbket is - ezeket asszociatv tmbkknt kezelhetjk.

fel...

rekurzv (tbbdimenzis) tmbk

A PHP rugalmassgt mutatja, hogy egy tmbelem maga is lehet egy msik tmb. Ezzel - akr tbb szint mlysgig - sszetett adatszerkezetet is lerhatunk (hacsak magunk bele nem kavarodunk ;-)
gy hozhatunk ltre egy tbbdimenzis tmbt:

<?php

$fo_tomb = array ( array("egy" => "valami", "ketto" => "akrmi", "harom" => "brmi"),
                   "valami szveg",
		   array("piros", "kk", "zld", 15, 21) );

?>

Termszetesen betehetnk egy mr korbban definilt tmbt is egy msik tmbbe:

<?php

$belso_tomb = array("egy" => "valami", "ketto" => "akrmi", "harom" => "brmi");

$fo_tomb = array ( $belso_tomb,
                   "valami szveg",
		   array("piros", "kk", "zld", 15, 21) );

?>

Itt is elrhetnk minden tmbelemet nllan is. rjuk most ki pldul azt a tmbelemet, aminek a pldban "akrmi", utna azt, aminek "piros" rtket adtunk:

<?php

print ($fo_tomb[0]["ketto"]);   // kirja, hogy akrmi
print ($fo_tomb[2][0]);         // kirja, hogy piros

?>

Ltjuk teht: ez a fentebb ltott szgetes zrjeles meghatrozs, csak mivel itt kt egymsba helyezett tmbrl van sz, kt zrjelre van szksg, amelyek kvlrl befel halad sorrendben vlasztjk ki a keresett tmbelemet.



 

Gyakori feladat, hogy egy tmb sszes elemt kell kilistzni. Erre kivlan alkalmasak a ciklusok, mint vezrlsi szerkezetek.

A tmbkkel is szmos mveletet lehet vgezni a PHP beptett fggvnyei, vagy az ltalunk rt fggvnyek segtsgvel. Erre nhny gyakorlati pldt itt tallsz. (ez mg nincs ksz...)

 
Bejelentkezs
Felhasznlnv:

Jelsz:
SgSg
Regisztrci
Elfelejtettem a jelszt
 
XHTML
 
Linkek

Freewebsite
Programozs.lap.hu
Webmester.lap.hu

 

* Beugrós munkavállalók éjjel-nappal. * Beugrós munkavállalók éjjel-nappal. * Beugrós munkavállalók éjjel-nappal. *    *****    Elindult a Játék határok nélkül rajongói oldal! Ha te is szeretted a '90-es évek népszerû mûsorát, nézz be ide!    *****    Megjelent a Nintendo Switch 2 és a Mario Kart World! Ennek örömére megújítottam a Hungarian Super Mario Fan Club oldalt.    *****    Homlokzati hõszigetelés! Vállaljuk családi házak, nyaralók és egyéb épületek homlokzati szigetelését! 0630/583-3168    *****    A PlayStation 3 átmeneti fiaskója után a PlayStation 4 ismét sikersztori volt. Ha kíváncsi vagy a történetére, katt ide!    *****    A Bakuten!! az egyik leginkább alulértékelt sportanime. Egyedi, mégis csodálatos alkotásról van szó. Itt olvashatsz róla    *****    A PlayStation 3-ra jelentõsen felborultak az erõviszonyok a konzolpiacon. Ha érdekel a PS3 története, akkor kattints ide    *****    Új mese a Mesetárban! Téged is vár, gyere bátran! Mese, mese, meskete - ha nem hiszed, nézz bele!    *****    Az Anya, ha mûvész - Beszélgetés Hernádi Judittal és lányával, Tarján Zsófival - 2025.05.08-án 18:00 -Corinthia Budapest    *****    &#10024; Egy receptes gyûjtemény, ahol a lélek is helyet kapott &#8211; ismerd meg a &#8222;Megóvlak&#8221; címû írást!    *****    Hímes tojás, nyuszipár, téged vár a Mesetár! Kukkants be hozzánk!    *****    Dryvit, hõszigetelés! Vállaljuk családi házak, nyaralók és egyéb épületek homlokzati szigetelését! 0630/583-3168    *****    Nagyon ütõs volt a Nintendo Switch 2 Direct! Elemzést a látottakról pedig itt olvashatsz!    *****    Elkészítem születési horoszkópod és ajándék 3 éves elõrejelzésed. Utána szóban minden kérdésedet megbeszéljük! Kattints    *****    Könyves oldal - egy jó könyv, elrepít bárhová - Könyves oldal    *****    20 éve jelent meg a Nintendo DS! Emlékezzünk meg ról, hisz olyan sok szép perccel ajándékozott meg minket a játékaival!    *****    Ha érdekelnek az animék,mangák,videojátékok, japán és holland nyelv és kultúra, akkor látogass el a személyes oldalamra.    *****    Dryvit, hõszigetelés! Vállaljuk családi házak, nyaralók és egyéb épületek homlokzati szigetelését! 0630/583-3168 Hívjon!    *****    Könyves oldal - Ágica Könyvtára - ahol megnézheted milyen könyveim vannak, miket olvasok, mik a terveim...    *****    Megtörtént Bûnügyekkel foglalkozó oldal - magyar és külföldi esetek.