home 2024. április 19., Emma napja
Online előfizetés
A PHP-tömb
Erdsoft
2019.05.07.
LXXIV. évf. 18. szám
A PHP-tömb

A PHP-tömb (angolul array) egy speciális változó — olyan adatstruktúra, amely egy vagy több értéket őriz egyetlen másik értékben.

Ha van egy listánk (mely például autómárkákat tartalmaz), akkor az elemeinek az egy változóban való őrzése így festene:

$cars1 = 'Volvo';
$cars2 = 'BMW';
$cars3 = 'Toyota';
 

Tegyük fel azonban, hogy szeretnénk megtalálni a lista egy konkrét elemét — és induljunk ki abból, hogy nem 3, hanem 300 autómárkáról beszélünk! Ilyen esetekben a tömb létrehozása a megoldás. Egy tömb számos értéket tartalmazhat egyetlen név alatt, az értékek pedig az indexszám segítségével érhetőek el.

A PHP-ben a tömb létrehozására az array() funkciót alkalmazzuk.

Három típusú tömb létezik:

  • numerikusan indexelt — a tömb számbeli indexet tartalmaz,
  • asszociatív — a tömbben a kulcsok megnevezések,
  • többdimenziós — olyan tömbök, amelyek egy vagy több másik tömböt tartalmaznak, ezek azonban már haladó szintet igényelnek, ezért mai leckénkben nem foglalkozunk velük.
     

Numerikusan indexelt tömbök

Ezeket kétféleképp tudjuk létrehozni. Az indexet kioszthatjuk automatikusan, ahogyan azt a következő példa is mutatja:

PHP-kód:

$cars = array('Volvo', 'BMW', 'Toyota');

Más esetben az index manuálisan is kiosztható. Ez a következőképp alakul:

PHP-kód:

$cars[0] = 'Volvo';
$cars[1] = 'BMW';
$cars[2] = 'Toyota';

Ha a tömb sok értéket tartalmaz, akkor időnként szükség lehet arra, hogy megszámoljuk az elemeket. Ehhez azonban nem kell egyenként számolgatnunk őket — segítségül hívhatjuk a count() funkciót. Nézzük, hogyan működik:

<?php
$cars = array('Volvo', 'BMW', 'Toyota');
echo count($cars);
?>

Esetünkben a böngésző — könnyen ellenőrizhetjük — a 3 értéket írná ki.

Ha először találkozol a tömb fogalmával, megeshet, hogy még mindig nem teljesen világos számodra. Vegyünk hát még egy példát: képzeld el, hogy van egy vállalatod, és szeretnéd egy PHP-változóban tárolni valamennyi alkalmazottad nevét. Hogyan tudnád ezt elérni?

Annak nem lenne túl sok értelme, ha minden névhez egy saját változót kapcsolnánk. Sokkal hasznosabb lenne, ha minden név egyetlen változón belül lenne. Ezt a tömb segítségével könnyen megoldhatjuk!

PHP-kód:

$employee_array[0] = 'Béla';
$employee_array[1] = 'Sára';
$employee_array[2] = 'Károly';
$employee_array[3] = 'Klára';

Példánkban kihasználtuk a tömb kulcs / érték struktúráját. A kulcsok a számok, az értékek pedig az alkalmazottak. A tömb minden kulcsa egy olyan érték, amellyel dolgozni tudunk, és amelyre utalhatunk. A tömb kulcsa és értéke kiegyenlítésének általános formája a következő:

$array[key] = value;

Fontos: Talán észrevetted, hogy a fenti példában a kulcsok 0-val kezdődnek, nem pedig 1-gyel. Ez egy gyakori gond a kezdő programozók körében, hiszen megszoktuk, hogy a számolást 1-től kezdjük. Ez sokszor tolódásokhoz vezet — az idő múlásával azonban meg fogod szokni, hogy a 0-t is alkalmaznod kell.

Ha szeretnénk utalni a fenti tömbben megőrzött értékekre, azt a következő módon tehetjük meg:

PHP-kód:

echo 'Két alkalmazottam '
. $employee_array[0] . ' & ' . $employee_array[1];
echo '<br />Két másik alkalmazottam pedig '
. $employee_array[2] . ' & ' . $employee_array[3];
 

Megjelenítés a böngészőben:

Két alkalmazottam Béla & Sára
Két másik alkalmazottam pedig Károly & Klára

A PHP-tömbök számos esetben bizonyulnak különösen hasznosnak. Példánkban a numerikusan indexelt tömb egy egyszerű felhasználási módját mutattuk be. Kulcsként azonban megadhatunk egy stringet is — ilyenkor asszociatív tömbről beszélünk.

Asszociatív tömbök

Itt a kulcs össze van kapcsolva az értékkel. Ha szeretnénk egy tömbbe gyűjteni az alkalmazottak fizetését, nem a numerikusan indexelt tömb lenne a legjobb választás. Helyette használhatjuk az alkalmazottak nevét mint az asszociatív tömb kulcsait, az érték pedig a megfelelő fizetés lenne. Lássuk ezt példával illusztrálva:

$salaries['Béla'] = 2000;
$salaries['Sára'] = 4000;
$salaries['Károly'] = 600;
 
echo 'Béla fizetése - $' . $salaries['Béla'] . '<br />';
echo 'Sára fizetése - $' . $salaries['Sára'] . '<br />';
echo 'Károly fizetése - $' . $salaries['Károly'];

 

Megjelenítés a böngészőben:

Béla fizetése - $2000
Sára fizetése - $4000
Károly fizetése - $600
 

A numerikusan indexelt tömbökhöz hasonlóan az asszociatív tömböket is kétféleképp tudjuk létrehozni. Mutatjuk is mindkét módot:

<?php
$ages['Péter'] = 22;
$ages['Sándor'] = 32;
$ages['János'] = 28;
?>

A már ismerős mód mellett egy másik módszer is létezik:

<?php
// Asszociatív tömb meghatározása
$ages = array('Péter' => 22, 'Sándor' => 32, 'János' => 28);
?>
 

Összegzés:

Ugye, nem is olyan bonyolult? A PHP-tömbök nagyon hasznosak lesznek majd, amikor megismerkedsz a PHP-loop fogalmával is. Addig azonban számos esetben használhatod a tömböket, ahogyan azt példáinkkal is illusztráltuk.

 


 

NYEREMÉNYJÁTÉK!

Rovatunk elsődleges célja, hogy közelebbről is bemutassa a legismertebb webtechnológiákat. Azok között az olvasók között, akik minden héten követik rovatunkat, azaz velünk tanulják a programozás alapjait és kitöltik a feladatsort, a sorozat végén egy laptopot sorsolunk ki.

Fejezd be a mondatot:

Egy tömb akkor asszociatív, ha a kulcsai...
1. numerikusak.
2. megnevezések.
3. 0-tól indulnak.

 
A választ a tanulok@erdsoft.com e-mail-címre kell elküldeni, a tárgysorba pedig
a következőt kell beírni: HÉTNAP-TANULOK. Sok szerencsét!

 


 

Néhány szó rólunk:

Az ErdSoft (www.erdsoft.com) 2011-ben alakult meg. Csapatunkat a fiatalos lendület, a szakértelem, a folyamatos tanulás és tapasztalatgyűjtés jellemzi. Ügyfeleinknek igyekszünk teljes körű szolgáltatást nyújtani — bátran fordulhatnak hozzánk, legyen szó webfejlesztésről, alkalmazásokról, SEO-optimalizálásról, grafikai tervezésről, marketingről vagy szövegírásról. Csapatunk sikerét mi sem bizonyítja jobban, mint a több száz elkészült weboldal és a számos elégedett ügyfél Szerbiában, Magyarországon és az Egyesült Királyságban.

Hozzászólások
Hozzászólások
0
Hozzászólás küldése
1000 karakter áll rendelkezésére
A megjegyzésekben kifejtett vélemények a hozzászólások szerzőinek magánvéleményei, és nem tükrözik az internetes portál véleményét. A megjegyzéseket moderáljuk és jóváhagyjuk az általános szerződési feltételeknek megfelelően.
Támogatóink
Az oldal sütiket használ, hogy személyre szabjuk a tartalmakat és reklámokat, hogy működjenek a közösségi média funkciók, valamint hogy elemezzük a weboldal forgalmát. Bővebben a "Beállítások" gombra kattintva olvashat.
Az oldal sütiket használ, hogy személyre szabja az oldalon megjelenő tartalmat és reklámokat..