tévék. Konzolok. Projektorok és tartozékok. Technológiák. Digitális TV

Kétdimenziós tömbök bejárása php-ban. Többdimenziós tömbök használata PHP-ben. PHP mi egy asszociatív tömb

$arr [ 1 ] = "PHP" ;
$arr [ 2 ] = "MySQL" ;
$arr [3] = "Apache" ;
?>

A tömbelemek idézőjelben használhatók, csakúgy, mint a normál változók, tehát kód

echo " $arr [ 1 ] $arr [ 2 ] $arr [ 3 ] " ;
?>

$arr [ "first" ] = "PHP" ;
$arr [ "second" ] = "MySQL" ;
$arr [ "third" ] = "Apache" ;
?>

Ebben az esetben a tömb meghívása asszociációs, indexeit pedig ún kulcsokat. Egy tömbelem karakterláncban való megjelenítéséhez nem szabad idézőjeleket megadni (sem dupla, sem egyszeres):

echo " $arr [ első ] $arr [ második ] $arr [ harmadik ] " ;
?>

Mivel az asszociatív tömbök nem rendelkeznek indexekkel, egy speciális huroktípust vezettek be a bejárásukra - foreach:

foreach($arr mint $kulcs => $érték )
{
echo " $kulcs = $érték
" ;
}
?>

A ciklus eredményeként három sor kerül kiadásra

Első = PHP
második = MySQL
harmadik = Apache

A "$key =>" konstrukció, amely lehetővé teszi a hozzáférést a tömbkulcshoz az egyes ciklusokban, nem kötelező, és elhagyható:

foreach($arr mint $value )
{
echo " $érték
" ;
}
?>

Számos függvény lehetővé teszi tömbök visszaadását is, például a függvény fájl(), amely beolvas egy fájlt, és tömbként adja vissza a tartalmát. A tömb minden eleme egy sornak felel meg.

$arr = fájl("szöveg.txt");
for($i = 0 ; $i< count ($arr ); $i ++)
{
echo $arr [ $i ]. "
" ;
}
?>

Egy másik hasznos funkció a funkció felrobban(), amely lehetővé teszi egy karakterlánc felosztását több töredékre, amelyek mindegyike külön tömbelembe kerül:

$str = "345|[e-mail védett]|http://www.webhely|bejelentkezés|jelszó";
$arr = felrobban ("|" , $str );
for($i = 0 ; $i< count ($arr ); $i ++)
{
echo $arr [ $i ]. "
" ;
}
?>

A szkript eredménye így nézhet ki:

345
[e-mail védett]
http://www.site
bejelentkezés
jelszó

Van egy inverz függvény is - implode(), amely a tömbelemeket egy karakterláncba egyesíti egy adott határoló használatával:

$arr = "345" ;
$arr = " [e-mail védett]" ;
$arr = "http://www.webhely" ;
$arr = "bejelentkezés" ;
$arr = "jelszó" ;
$str = implode ("##" , $arr );
echo $str ; //345##[e-mail védett]##http://www.
?>

Megjegyzés

Általánosságban elmondható, hogy nagyon sok olyan függvény létezik, amelyek mindegyikének figyelembevétele túlmutat e cikk keretein.

A függvény segítségével eltávolíthatja a tömb egyetlen elemét unset(), és a függvény segítségével ellenőrizheti egy tömb létezését isset(). Definiáljunk egy 10 elemből álló tömböt, és semmisítsünk meg minden páros elemet.

unset($arr [ 0 ], $arr [ 2 ], $arr [ 4 ], $arr [ 6 ], $arr [ 8 ]);
// Ellenőrizze, hogy léteznek-e tömbelemek
for($i = 0 ; $i< 10 ; $i ++)
{
if(isset($arr [ $i ])) echo "Az $arr [ $i ] elem definiálva van
" ;
else echo "$arr elem [ $i ] undefined
"
;
}
?>

A szkript eredménye a következő sorok lesz

Az $arr elem nem definiált
Az $arr elem definiálva van
Az $arr elem nem definiált
Az $arr elem definiálva van
Az $arr elem nem definiált
Az $arr elem definiálva van
Az $arr elem nem definiált
Az $arr elem definiálva van
Az $arr elem nem definiált
Az $arr elem definiálva van

A funkció használata unset() egyszerre megsemmisítheti az egész tömböt.

$arr = array(9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
unset($arr);
if(isset($arr )) echo "Tömb meghatározva";
más visszhangzik "A tömb nincs meghatározva";
?>

Korábban a tömböket hurok segítségével írták ki, de a PHP egy speciális funkciót biztosít egy tömb kiírásához print_r(). A funkció a konzol adatfolyamba történő kimenetre összpontosít, így amikor az eredményeket böngészőablakba adjuk ki, jobb, ha címkékkel keretezzük

ÉS
:

$arr = "345";
$arr = " [e-mail védett]";
$arr = "http://www.webhely";
$arr = "bejelentkezés";
$arr = "jelszó";
visszhang"

";
print_r($arr);
echo " ";
?>

A szkript eredménye így néz ki:

Sor
=> 345
=> [e-mail védett]
=> http://www.site
=> Bejelentkezés
=> jelszó
)

Többdimenziós tömbök

Nemcsak a skaláris mennyiségek, hanem maguk a tömbök is működhetnek tömbelemként. Ilyenkor kapjuk az ún többdimenziós tömbök.

Tegyük fel, hogy meg kell kapnia a következő táblázatot:

Ehhez hozzunk létre egy kétdimenziós tömböt:

$arr = array(array('Vasya' , 'lakatos' , 2500),
array('Misha', 'builder', 3000),
array('Andrey', 'illesztőprogram', 2700));
?>

Most a táblázat a következő kóddal jeleníthető meg:

for ($i = 0; $i< 3 ; $i ++)
{
for ($j = 0 ; $j< 3 ; $j ++)
{
echo " | " . $arr[$i][$j];
}
visszhang"
" ;
}
?>

Eredmény:

| Vasya | lakatos | 2500
| Misha | építő | 3000
| Andrey | sofőr | 2700

Használhat háromdimenziós, négydimenziós stb. tömbök.

Műveletek tömbökön (receptek gyűjteménye)

1) Egy tömb elemeinek számának meghatározása count():

Hozzuk létre a $name tömböt:

?>

Egy tömb elemeinek számának meghatározásához a következőket teheti:

visszhang „A tömb elemeinek száma-’. count($név);
?>

Eredmény:

A tömb elemeinek száma – 8

2) Tömbök kombinálása

a) Hozzon létre két $a és $b asszociatív tömböt:

$a = array("a" => "aa" , "b" => "bb" );
$b = array("c" => "cc" , "d" => "dd" );
?>

Tegyük fel, hogy létre kell hoznia egy $c tömböt, amely tartalmazza az $a és a $b tömb elemeit is:

$a = array("a" => "aa" , "x" => "xx" );
$b = array("c" => "cc" , "d" => "dd" );
$c = $a + $b ;
visszhang"

"
;

print_r($c);
visszhang"
" ;
?>

Eredmény:

Sor
[a] => aa
[x] => xx
[c] => cc
[d] => dd
)

b) Hozzon létre két $a és $b numerikus tömböt:

$a = array(10, 20);
$b = array(100 , 200 , 300 , 400 , 500 );
?>

Már nem kombinálhatók a $c = $a + $b; konstrukcióval. Ezek kombinálásához a funkciót kell használnia array_merge():

$c = array_merge ($a, $b);
?>

3) Tömb rendezés

Használjuk a $name tömböt:

$name = array("Főnök" , "Lentin" , "NAV" , "Végtelen" , "Sárkányok" , "SiLeNT" , "Doktor" , "Hiúz" );
?>

Tegyük fel, hogy egy tömböt ábécé sorrendbe szeretne rendezni, ehhez a következő kódot használhatja:

sort($név);
visszhang"

"
;

print_r($név);
visszhang"
" ;
?>

Eredmény:

Sor
=> Főnök
=> Doktor
=> Sárkányok
=> Végtelen
=> Lentin
=> Hiúz
=>NAV
=> SiLeNT
)

Tegyük fel, hogy a $name tömbből a legrövidebb elemet kell kiválasztani (amelynek a legkevesebb karaktere van), ebben az esetben használhatja a kódot:

$name = array("Főnök" , "Lentin" , "NAV" , "Végtelen" , "Sárkányok" , "SiLeNT" , "Doktor" , "Hiúz" );
$min = strlen($név[0]);
$name = $név [ 0 ];
for ($i = 1 ; $i< count ($name ); $i ++)
{
$len = strlen ($név [ $i ]);
if ($len< $min )
{
$nam = $név [ $i ];
$min = strlen ($nam );
}
}
visszhang "Legrövidebb hossza -". $nam ;
?>

4) Mozgás a tömbön belül

Hozzunk létre egy $num tömböt:

$szám = tömb(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
?>

Tegyük fel, hogy a tömbelemeket fordított sorrendben szeretné megjeleníteni, ebben az esetben használhatja a kódot:

$vég = end($szám);
Míg ($end)
{
echo $end . "-" ;
$vég = előző($szám);
}
?>

Eredmény:

10 - 9 - 8 - 7 - 6 - 5 - 4 - 3 - 2 – 1

A fenti kód módosítható:

$szám = tartomány(1, 10);
print_r(tömb_reverse($szám));
?>

Funkció tartomány(1,10) létrehoz egy tömböt (1,2,3,4,5,6,7,8,9,10) az elemek véletlenszerű elrendezésével. Funkció array_reverse() vesz egy tömböt, és fordított sorrendbe rendezi az elemeket (10,9,8,7,6,5,4,3,2,1)

Funkciók következő(), minden() egy elemmel előre mozgatja a mutatót. Funkció reset() egy mutatót ad vissza a tömb 1 elemére. Használjuk a $num tömböt.

Gyakran át kell ismételnie egy PHP tömb összes elemét, és minden elemen végre kell hajtania valamilyen műveletet. Például minden értéket kiírhat egy HTML-táblázatba, vagy minden elemnek új értéket adhat.

Ebben a leckében megvizsgáljuk a foreach konstrukciót, amikor egy ciklust indexelt és társított tömbökre szervezünk.

Hurok az elemértékek között

A foreach legegyszerűbb használati esete egy indexelt tömbben lévő értékek áthurkolása. Alapszintaxis:

Foreach ($array mint $érték) (// Csinálj valamit a $value-vel) // Itt a kód a ciklus befejezése után fut le

Például a következő szkript egy indexelt tömbben lévő igazgatók listáján iterál, és kiírja mindegyik nevét:

$directors = array("Alfred Hitchcock", "Stanley Kubrick", "Martin Scorsese", "Fritz Lang"); foreach ($directors mint $director) ( echo $director . "
"; }

A fenti kód kimenete:

Alfred Hitchcock Stanley Kubrick Martin Scorsese Fritz Lang

Kulcs-érték hurok

Mi a helyzet a kapcsolódó tömbökkel? Az ilyen típusú tömbök használatakor gyakran hozzá kell férnie az egyes elemek kulcsához és értékéhez. A foreach konstrukciónak van módja a probléma megoldására:

Foreach ($tömb mint $kulcs => $érték) (// Csinálj valamit a $kulccsal és/vagy $value-vel) // Itt a kód a ciklus befejezése után fut le

Példa hurok szervezésére egy társított tömbön keresztül, amely filmekkel kapcsolatos információkat tartalmaz, és megjeleníti az egyes elemek kulcsát és értékét a HTML definíciók listájában:

$film = array("title" => "Hátsó ablak", "rendező" => "Alfred Hitchcock", "év" => 1954, "perc" => 112); visszhang"

"; foreach ($film mint $kulcs => $érték) ( echo "
$kulcs:
"; visszhang"
$érték
"; ) visszhang"
";

Amikor végrehajtja, ez a szkript a következőt adja ki:

Cím: Hátsó ablak rendezője: Alfred Hitchcock év: 1954 perc: 112

Egy elem értékének megváltoztatása

Mi a helyzet egy elem értékének megváltoztatásával a ciklus során? Kipróbálhatod ezt a kódot:

Foreach ($myArray mint $érték) ($value = 123; )

Ha azonban futtatja, azt találja, hogy a tömbben lévő értékek ne változtass. Ennek az az oka, hogy a foreach működik együtt egy másolatot tömbértékeket, nem az eredetivel. Így az eredeti tömb érintetlen marad.

A tömbértékek módosításához szüksége van link a jelentéshez. Ehhez a foreach konstrukcióban az értékváltozó elé egy & jelet kell tenni:

Foreach ($myArray mint &$value) ($value = 123; )

Például a következő szkript végigfut a $directors tömb minden elemén (a rendező nevén), és a PHP explode() függvényt és a listakonstrukciót használja a kereszt- és vezetéknevek felcserélésére:

$directors = array("Alfred Hitchcock", "Stanley Kubrick", "Martin Scorsese", "Fritz Lang"); // Az egyes elemek névformátumának módosítása foreach ($directors mint &$director) ( list($firstName, $lastName) = explode(" ", $director); $director = "$lastName, $firstName"; ) unset ( $igazgató); // A foreach végeredmény kinyomtatása ($directors mint $director) ( echo $director . "
"; }

A szkript kimenete:

Hitchcock, Alfred Kubrick, Stanley Scorsese, Martin Lang, Fritz

Vegye figyelembe, hogy a szkript meghívja az unset() függvényt, hogy eltávolítsa a $director változót, miután az első ciklus befejeződött. Ez egy jó gyakorlat, ha a változót a szkriptben később, más kontextusban kívánja használni.

Ha nem távolítja el a hivatkozást, fennáll annak a veszélye, hogy a tömb utolsó elemére ("Lang, Fritz") véletlenül hivatkozó kód további végrehajtása következik be, ha továbbra is a $director változót használja, ami nem kívánt következményekhez vezet!

Folytatás

Ebben az oktatóanyagban azt néztük meg, hogyan használhatjuk a PHP foreach konstrukciót egy tömb elemei közötti ciklusra. A következő kérdéseket vették figyelembe:

  • Hogyan lehet a tömb elemei között hurkolni
  • Az egyes elemek kulcsának és értékének elérése
  • Hogyan használjunk hivatkozást az értékek megváltoztatásához, miközben áthaladunk egy hurkon

$arr [ 1 ] = "PHP" ;
$arr [ 2 ] = "MySQL" ;
$arr [3] = "Apache" ;
?>

A tömbelemek idézőjelben használhatók, csakúgy, mint a normál változók, tehát kód

echo "$arr $arr $arr" ;
?>

$arr [ "first" ] = "PHP" ;
$arr [ "second" ] = "MySQL" ;
$arr [ "third" ] = "Apache" ;
?>

Ebben az esetben a tömb meghívása asszociációs, indexeit pedig ún kulcsokat. Egy tömbelem karakterláncban való megjelenítéséhez nem szabad idézőjeleket megadni (sem dupla, sem egyszeres):

visszhang "$arr $arr $arr";
?>

Mivel az asszociatív tömbök nem rendelkeznek indexekkel, egy speciális huroktípust vezettek be a bejárásukra - foreach:

foreach($arr mint $kulcs => $érték )
{
echo "$kulcs = $érték
" ;
}
?>

A ciklus eredményeként három sor kerül kiadásra

első = PHP
második = MySQL
harmadik = Apache

A "$key =>" konstrukció, amely lehetővé teszi a hozzáférést a tömbkulcshoz az egyes ciklusokban, nem kötelező, és elhagyható:

foreach($arr mint $value )
{
echo "$value
" ;
}
?>

Számos függvény lehetővé teszi tömbök visszaadását is, például a függvény fájl(), amely beolvas egy fájlt, és tömbként adja vissza a tartalmát. A tömb minden eleme egy sornak felel meg.

$arr = fájl("szöveg.txt");
for($i = 0 ; $i< count ($arr ); $i ++)
{
echo $arr [ $i ]. "
" ;
}
?>

Egy másik hasznos funkció a funkció felrobban(), amely lehetővé teszi egy karakterlánc felosztását több töredékre, amelyek mindegyike külön tömbelembe kerül:

$str = "345|[e-mail védett]|http://www.softtime.ru|bejelentkezés|jelszó";
$arr = felrobban ("|" , $str );
for($i = 0 ; $i< count ($arr ); $i ++)
{
echo $arr [ $i ]. "
" ;
}
?>

A szkript eredménye így nézhet ki:

345
[e-mail védett]
http://www.softtime.ru
bejelentkezés
jelszó

Van egy inverz függvény is - implode(), amely a tömbelemeket egy karakterláncba egyesíti egy adott határoló használatával:

$arr = "345" ;
$arr = " [e-mail védett]" ;
$arr = "http://www.softtime.ru" ;
$arr = "bejelentkezés" ;
$arr = "jelszó" ;
$str = implode ("##" , $arr );
echo $str ; //345##[e-mail védett]##http://www.softtime.ru##login##jelszó
?>

Megjegyzés

Általánosságban elmondható, hogy nagyon sok olyan függvény létezik, amelyek mindegyikének figyelembevétele túlmutat e cikk keretein.

A függvény segítségével eltávolíthatja a tömb egyetlen elemét unset(), és a függvény segítségével ellenőrizheti egy tömb létezését isset(). Definiáljunk egy 10 elemből álló tömböt, és semmisítsünk meg minden páros elemet.

unset($arr [ 0 ], $arr [ 2 ], $arr [ 4 ], $arr [ 6 ], $arr [ 8 ]);
// Ellenőrizze, hogy léteznek-e tömbelemek
for($i = 0 ; $i< 10 ; $i ++)
{
if(isset($arr [ $i ])) echo "Az $arr[$i] elem definiálva van
"
;
más visszhangzik "Az $arr[$i] elem nem definiált
"
;
}
?>

A szkript eredménye a következő sorok lesz

Az $arr elem nem definiált
Az $arr elem definiálva van
Az $arr elem nem definiált
Az $arr elem definiálva van
Az $arr elem nem definiált
Az $arr elem definiálva van
Az $arr elem nem definiált
Az $arr elem definiálva van
Az $arr elem nem definiált
Az $arr elem definiálva van

A funkció használata unset() egyszerre megsemmisítheti az egész tömböt.

$arr = array(9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
unset($arr);
if(isset($arr )) echo "Tömb meghatározva";
más visszhangzik "A tömb nincs meghatározva";
?>

Korábban a tömböket hurok segítségével írták ki, de a PHP egy speciális funkciót biztosít egy tömb kiírásához print_r(). A függvény a konzol adatfolyamra való kimenetre van orientálva, így amikor az eredményeket böngészőablakba adjuk ki, jobb, ha címkékkel keretezzük

ÉS
:

$arr = "345";
$arr = " [e-mail védett]";
$arr = "http://www.softtime.ru";
$arr = "bejelentkezés";
$arr = "jelszó";
visszhang"

";
print_r($arr);
visszhang"
";
?>

A szkript eredménye így néz ki:

Sor
=> 345
=> [e-mail védett]
=> http://www.softtime.ru
=> Bejelentkezés
=> jelszó
)

Többdimenziós tömbök

Nemcsak a skaláris mennyiségek, hanem maguk a tömbök is működhetnek tömbelemként. Ilyenkor kapjuk az ún többdimenziós tömbök.

Tegyük fel, hogy meg kell kapnia a következő táblázatot:

Ehhez hozzunk létre egy kétdimenziós tömböt:

$arr = array(array('Vasya' , 'lakatos' , 2500),
array('Misha', 'builder', 3000),
array('Andrey', 'illesztőprogram', 2700));
?>

Most a táblázat a következő kóddal jeleníthető meg:

for ($i = 0; $i< 3 ; $i ++)
{
for ($j = 0 ; $j< 3 ; $j ++)
{
echo " | " . $arr[$i][$j];
}
visszhang"
" ;
}
?>

Eredmény:

| Vasya | lakatos | 2500
|
Misha | építő | 3000

| Andrey | sofőr | 2700

Műveletek tömbökön (receptek gyűjteménye)

1) Egy tömb elemeinek számának meghatározása count():

Hozzuk létre a $name tömböt:

?>

Használhat háromdimenziós, négydimenziós stb.

visszhang „A tömb elemeinek száma tömbök.
?>

Eredmény:

Egy tömb elemeinek számának meghatározásához a következőket teheti:

2) Tömbök kombinálása

a) Hozzon létre két $a és $b asszociatív tömböt:

-’. count($név);
A tömb elemeinek száma – 8
?>

$a = array("a" => "aa" , "b" => "bb" );

$b = array("c" => "cc" , "d" => "dd" );
Tegyük fel, hogy létre kell hoznia egy $c tömböt, amely tartalmazza az $a és a $b tömb elemeit is:
$a = array("a" => "aa" , "x" => "xx" );
visszhang"

"
; 
$b = array("c" => "cc" , "d" => "dd" );
visszhang"
" ;
?>

Eredmény:

Sor
$c = $a + $b ;
print_r($c);
[a] => aa
[x] => xx
)

b) Hozzon létre két $a és $b numerikus tömböt:

[c] => cc
[d] => dd
?>

$a = array(10, 20); array_merge():

$b = array(100 , 200 , 300 , 400 , 500 );
?>

3) Tömb rendezés

Használjuk a $name tömböt:

Már nem kombinálhatók a $c = $a + $b; konstrukcióval. Ezek kombinálásához a funkciót kell használnia
?>

$c = array_merge ($a, $b);

$name = array("Főnök" , "Lentin" , "NAV" , "Végtelen" , "Sárkányok" , "SiLeNT" , "Doktor" , "Hiúz" );
visszhang"

"
; 
Tegyük fel, hogy egy tömböt ábécé sorrendbe szeretne rendezni, ehhez a következő kódot használhatja:
visszhang"
" ;
?>

Eredmény:

Sor
sort($név);
print_r($név);
=> Főnök
=> Végtelen
=> Lentin
=> Hiúz
=>NAV
=> SiLeNT
)

Tegyük fel, hogy a $name tömbből a legrövidebb elemet kell kiválasztani (amelynek a legkevesebb karaktere van), ebben az esetben használhatja a kódot:

Már nem kombinálhatók a $c = $a + $b; konstrukcióval. Ezek kombinálásához a funkciót kell használnia
$min = strlen($név[0]);
$name = $név [ 0 ];
for ($i = 1 ; $i< count ($name ); $i ++)
{
$len = strlen ($név [ $i ]);
if ($len< $min )
{
$nam = $név [ $i ];
$min = strlen ($nam );
}
}
visszhang "Legrövidebb hossza -". $nam ;
?>

4) Mozgás a tömbön belül

Hozzunk létre egy $num tömböt:

?>

Tegyük fel, hogy a tömbelemeket fordított sorrendben szeretné megjeleníteni, ebben az esetben használhatja a kódot:

$vég = end($szám);
Míg ($end)
{
echo $end . "-" ;
$vég = előző($szám);
}
?>

Eredmény:

10 - 9 - 8 - 7 - 6 - 5 - 4 - 3 - 2 – 1

A fenti kód módosítható:

$szám = tartomány(1, 10);
print_r(tömb_reverse($szám));
?>

Funkció tartomány(1,10) létrehoz egy tömböt (1,2,3,4,5,6,7,8,9,10) az elemek véletlenszerű elrendezésével. Funkció array_reverse() vesz egy tömböt, és fordított sorrendbe rendezi az elemeket (10,9,8,7,6,5,4,3,2,1)

Funkciók következő(), minden() egy elemmel előre mozgatja a mutatót. Funkció reset() egy mutatót ad vissza a tömb 1 elemére. Használjuk a $num tömböt:

$szám = tömb(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
?>

Tegyük fel, hogy az összes elemet sorrendben kell kiadnia, és vissza kell adnia egy mutatót a tömb első elemére a tömb utolsó elemén.

Ezt a műveletet a következő kóddal lehet elvégezni.
Ebben a rövid cikkben a tömbökkel való munka több módját is megvizsgáljuk. Érdemes megjegyezni, hogy ez az egyik legfontosabb adattípus, és még a modern programozási nyelveket is nehéz elképzelni nélkülük. Mi az a tömb?
A tömb egy strukturált adathalmaz. Szerkezetük alapján ezt meg lehet határozni egyszerű tömb vagy asszociációs

. Nem lehet biztosan megmondani, melyik a jobb, mert... A helyzettől függően egyik vagy másik típust kell használni.

Hogyan készítsünk egyszerű tömböt PHP-ben

Így néz ki egy egyszerű tömb: Azonnal felhívnám a figyelmet az adatokra (igen, szándékosan így írtam le :)). Adattípus karakterlánc, vagy húr mindig idézőjelbe írd, nem mindegy, hogy melyik, az egyszeres és a dupla is működni fog (a lényeg, hogy a sor ugyanazzal az idézőjellel kezdődik és végződjön). A 29-es számnak van típusa egész szám
, vagy szám - ezekhez az adattípusokhoz nincs szükség idézőjelekre.

Nézzük meg, hogyan néz ki a $my_array tömb:"; print_r($my_array); echo "

"; /* get Array ( => Szék => Felhő => 29) */ ?>
0,1,2 Így néz ki egy egyszerű tömb.

— tömbünk indexei. Az indexek segítségével egy tömbből valami konkrétra következtethetünk.

Ugyanezt a tömböt is létrehozhatjuk, ha ezt írjuk:

És van egy harmadik út is:

"Szék", 1 => "Felhő", 2 => 29);?>

És a negyedik :)

az indexek 0-tól lesznek kitöltve.

Már rájöttünk, mi az egyszerű tömb. Az asszociatív tömb abban különbözik Az indexek helyett kulcsokat használnak. Vagyis többé nem fogunk 0, 1 vagy 2-t használni az értékek eléréséhez. Írjuk asszociatívként az egyszerű tömbünket:

Szék => Felhő => 29) */ ?>

És hívni fogjuk használni

A szám helyett ( index) beállítunk egy értelmes nevet (asszociációt), és az indexünk már hívható tömb kulcs(elem, égbolt, szám). Az asszociatív tömb legnépszerűbb és talán legkényelmesebb jelölése:

"Szék", "ég" => "Felhő", "szám" => 29); ?>

Többdimenziós tömb

Csak néhány szót erről az óriásról :)

array ("color" => "red", "year" => "2010", "mark" => "M5"), "audi" => array ("color" => "black", "year" = > "2011", "mark" => "TT")); print_r($auto); // tömb kimenet echo $auto["bmw"]["mark"]; // M5 ?>

Amint érti, a korábban karakterlánc vagy szám helyett egy adattípus, például egy tömb ( Csinálok neked egy tömböt egy tömbön belül, hogy a tömb meghívásakor egy másik tömb legyen :)).

Egy tömbnek nem kell egyszerű kulcslistának és egyszerű értékeknek lennie. Egy tömb minden eleme tartalmazhat értékként egy másik tömböt, amely viszont szintén tartalmazhat egy tömböt, és így tovább. Így két- és háromdimenziós tömböket hozhat létre.

Kétdimenziós tömbök

Kétdimenziós tömb- egy tömb, amely más tömböket tárol értékként. Fontolja meg egy kétdimenziós tömb létrehozását az array() konstruktor segítségével:

$virágok = array(array("rózsák", 100 , 15), array("tulipánok", 60 , 25), array("orchideák", 180 , 7));

A $flowers tömb három tömböt tartalmaz. Emlékszel, hogy egy egydimenziós tömb elemeinek eléréséhez meg kell adni a tömb nevét és kulcsát. Ugyanez igaz a kétdimenziós tömbökre is, egy kivétellel: minden elemnek két kulcsa van: az első egy sor, a második egy oszlop kijelölésére szolgál.

A tömb elemeinek megjelenítéséhez manuálisan hozzárendelhet hozzáférést mindegyikhez, de jobb, ha beágyazott hurkokat használ:

Kézi hozzáférés az elemekhez
"; echo $flowers." ár ".$virágok." ".$flowers" száma.
"; echo $flowers." ár ".$virágok." ".$flowers" száma.
"; visszhang"

Hurok használata elemek nyomtatásához

"; visszhang"
    "; for ($sor = 0; $sor< 3; $row++) { echo "
  1. $sor sorszáma"; visszhang"
      "; for ($col = 0; $col< 3; $col++) { echo "
    • ".$flowers[$row][$col]."
    • "; ) visszhang"
    "; visszhang"
  2. "; ) visszhang"
"; ?>

Az oszlopszámok (alapértelmezés szerint hozzájuk rendelt indexek) helyett a szükséges kulcsokat rendelheti hozzájuk. Erre a célra asszociatív tömböket használnak. A következő tömb ugyanazokat az adatokat tárolja, de kulcsokat használ az információs oszlopok elnevezéséhez:

$flowers = array(array("Név" => "rózsák", "Ár" => 100, "Mennyiség" => 15), array("Név" => "tulipán", "Ár" => 60, " Mennyiség" => 25,), array("Név" => "orchideák", "Ár" => 180, "Mennyiség" => 7));

A kulcsok további kényelmet biztosítanak a tömbökkel való munkavégzéshez olyan esetekben, amikor meg kell szerezni az egyik értéket. A szükséges adatokat könnyen megtalálhatja, ha a megfelelő cellát értelmes sor- és oszlopnevek használatával éri el. Elveszítjük azonban a tömb szekvenciális bejárásának lehetőségét a for ciklus használatával.

Csak egy for ciklust használva iterálhatunk gyermektömbökön. Mivel viszont asszociatívak, az elemeik iterálásához foreach ciklust kell használni, vagy manuálisan kell iterálni az elemeket:

"rózsák", "Ár" => 100, "Mennyiség" => 15), array("Név" => "tulipán", "Ár" => 60, "Mennyiség" => 25,), array("Név" " => "orchideák", "Ár" => 180, "Mennyiség" => 7)); visszhang"

Manuális hozzáférés az asszociatív tömbelemekhez

"; for ($sor = 0; $sor< 3; $row++) { echo $flowers[$row]["Название"]." цена ".$flowers[$row]["Цена"] ." количество ".$flowers[$row]["Количество"]; echo "
"; ) visszhang"

Foreach ciklus használata az elemek eléréséhez

"; visszhang"
    "; for ($sor = 0; $sor< 3; $row++) { echo "
  1. $sor sorszáma"; visszhang"
      "; foreach($flowers[$row] mint $kulcs => $érték) ( echo "
    • ".$érték."
    • "; ) visszhang"
    "; visszhang"
  2. "; ) visszhang"
"; ?>

Kétdimenziós tömb létrehozásához nem szükséges az array() konstruktort használni, használhatod a rövid szintaxist is - szögletes zárójelek:

$flowers = [ [ "Név" => "rózsák", "Ár" => 100, "Mennyiség" => 15 ], [ "Név" => "tulipán", "Ár" => 60, "Mennyiség" = > 25, ], [ "Név" => "orchideák", "Ár" => 180, "Mennyiség" => 7 ] ];

Háromdimenziós tömbök

Nem kell csupán két dimenzióra korlátozódnia: ahogyan a tömbelemek is tartalmazhatnak tömböket, ezek a tömbök is tartalmazhatnak új tömböket.

Egy háromdimenziós tömb jellemzi a szélességet, magasságot és mélységet. Ha egy kétdimenziós tömböt ábrázol táblázatként, akkor a háromdimenziós tömb rétegeket ad hozzá ehhez a táblázathoz. Egy ilyen tömb minden eleme egy rétegre, sorra és oszlopra fog hivatkozni.

Ha kicsit módosítja a virágokkal ellátott tömbünket, akkor azt háromdimenzióssá alakíthatja. Az alábbi kódban ezt láthatod háromdimenziós tömb- egy tömb tömböt tartalmazó tömb:

$virágok = [ [ ["rózsák", 100, 15], ["tulipánok", 60, 25], ["orchideák", 180, 7]], [["rózsák", 100, 15], ["tulipánok" " ", 60, 25], ["orchideák", 180, 7], ], [["rózsák", 100, 15], ["tulipánok", 60, 25], ["orchideák", 180, 7] ] ];

Mivel ez a tömb csak numerikus indexeket tartalmaz, beágyazott hurkokat használhatunk a megjelenítéséhez:

"; for ($réteg = 0; $réteg< 3; $layer++) { echo "

  • Fóliaszám $layer"; echo "
      "; for ($sor = 0; $sor< 3; $row++) { echo "
    • $sor száma"; echo "
        "; for ($col = 0; $col< 3; $col++) { echo "
      • ".$flowers[$layer][$row][$col]."
      • "; ) visszhang"
      "; visszhang"
    • "; ) visszhang"
    "; visszhang"
  • "; ) visszhang""; ?>



    Kapcsolódó kiadványok