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
$my_array = array("Стул", "Облако", 29);?>
Í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.
echo "
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.
$my_array = "Стул"; $my_array = "Облако"; $my_array = 29; ?>
Ugyanezt a tömböt is létrehozhatjuk, ha ezt írjuk:
$my_array = array (0 =>És van egy harmadik út is:
"Szék", 1 => "Felhő", 2 => 29);?>
$my_array = "Стул"; $my_array = "Облако"; $my_array = 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:
$my_array["item"] = "Стул"; $my_array["sky"] = "Облако"; $my_array["number"] = 29; /* получим если вызовем print_r($my_array); Array ( =>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:
$my_array = Array("item" =>"Szék", "ég" => "Felhő", "szám" => 29); ?>
Többdimenziós tömb
Csak néhány szót erről az óriásról :)
$auto = array ("bmw" =>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 "
- $sor sorszáma"; visszhang"
- "; for ($col = 0; $col< 3; $col++) {
echo "
- ".$flowers[$row][$col]." "; ) visszhang"
"; ) 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 "
- $sor sorszáma"; visszhang"
- "; foreach($flowers[$row] mint $kulcs => $érték) ( echo "
- ".$érték." "; ) visszhang"
"; ) 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 "
- "; for ($sor = 0; $sor< 3; $row++)
{
echo "
- $sor száma"; echo "
- "; for ($col = 0; $col< 3; $col++)
{
echo "
- ".$flowers[$layer][$row][$col]." "; ) visszhang"
"; ) visszhang"