Mivel a tömb egy elemének értéke bármi lehet, értékként akár egy másik tömböt is megadhatunk.
Ilyen formában készíthetünk rekurzív vagy többdimenziós tömböket.
1. Példa:
Az array() nyelvi elemmel történő kétdimenziós tömb létrehozására.
$vegyesbolt = array( | "árukészlet" => array( | "a" => "narancs", "b" => "banán", "c" => "tojás" ), |
"mennyiség" => array ( | "a" => "db", "b" => "kg", "c" => "csomag" ), | |
"egységár" => array ( | "a" => 20, "b"=> 250, "c" => 385 ) | |
); |
2. Példa:
A szögletes [ ] zárójelekkel történő, kétdimenziós tömb létrehozására.
$vegyesbolt["árukeszlet"]["a"] = "narancs"; $vegyesbolt["árukeszlet"]["b"] = "banán"; $vegyesbolt["árukeszlet"]["c"] = "tojás"; $vegyesbolt["mennyiség"]["a"] = "db"; $vegyesbolt["mennyiség"]["b"] = "kg"; $vegyesbolt["mennyiség"]["c"] = "csomag"; $vegyesbolt["egységár"]["a"] = 20; $vegyesbolt["egységár"]["b"] = 250; $vegyesbolt["egységár"]["c"] = 385; |
A kétdimenziós tömbök tartalmának bővítése.
Néhány példa a fenti kétdimenziós tömbök elemeinek hivatkozására.
<?php $vegyesbolt = array( "árukészlet" => array( "a" => "narancs", "b" => "banán", "c" => "tojás" ), "mennyiség" => array ( "a" => "db", "b" => "kg", "c" => "csomag" ), "egységár" => array ( "a" => 20, "b"=> 250, "c" => 385 ) ); echo $vegyesbolt["árukészlet"]["b"]; // kiírja, hogy "banán" echo "<br />"; echo $vegyesbolt["egységár"]["b"]; // kiírja, hogy "250" //unset($vegyesbolt["árukészlet"]["a"]); // eltávolítja az "a" indexel rendelkező elemet echo"A vegyesbolban:<br />"; echo $vegyesbolt["árukészlet"]["b"]." ". $vegyesbolt["egységár"]["b"]."Ft / ".$vegyesbolt["mennyiség"]["b"]; ?> |
Programunk eredménye: banán 250 A vegyesbolban: banán 250Ft / kg |
Fenti programunk alapján, elkészíthetjük a vállalatnál dolgozók adatainak nyilvántartását, vagy a regisztrált felhasználók nyilvántartását, és tetszőleges adatot kérhetünk le.
Tömb értékül adása másik tömbnek, ez másolást jelent.
<?php $elso_tomb = array(4, 8); echo"1.tömb [0]elem tartalma = "."$elso_tomb[0]"."<br />"; echo"1.tömb [1]elem tartalma = "."$elso_tomb[1]"."<br />"; $masodik_tomb = $elso_tomb; // A 2.tömb, átveszi az 1.tömb tartalmát. echo"2.tömb [0]elem tartalma = "."$masodik_tomb[0]"."<br />"; echo"2.tömb [1]elem tartalma = "."$masodik_tomb[1]"."<br />"; $masodik_tomb[] = 5; //2.tömb tartalma megváltozott, azaz bővült. echo"2.tömb [0]elem tartalma = "."$masodik_tomb[0]"."<br />"; echo"2.tömb [1]elem tartalma = "."$masodik_tomb[1]"."<br />"; echo"2.tömb [2]elem tartalma = "."$masodik_tomb[2]"."<br />"; echo"1.tömb nem változott, még mindig array(4, 8)<br />"; print_r($elso_tomb); echo"<br />"; // 3. és 1.tömb, összekapcsolása referencia operátorral. // 3.tömb, átveszi az 1.tömb tartalmát. $harmadik_tomb = &$elso_tomb; echo"3.tömb [0]elem tartalma = "."$harmadik_tomb[0]"."<br />"; echo"3.tömb [1]elem tartalma = "."$harmadik_tomb[1]"."<br />"; // 3.tömb tartalmát megváltoztatjuk, referencia operátor |
Programunk eredménye: Első tömb első elemének tartalma = 4 Első tömb második elemének tartalma = 8 A masodik_tomb, átveszi az elso_tomb tartalmát Második tömb első elemének tartalma = 4 Második tömb második elemének tartalma = 8 Második tömb tartalma megváltozott, azaz bővült. Második tömb első elemének tartalma = 4 Második tömb második elemének tartalma = 8 Második tömb harmadik elemének tartalma = 5 1.tömb tartalma nem változott, még mindig array(4, 8) Array ( [0] => 4 [1] => 8 ) 3.tömb, és 1.tömb, összekapcsolása referencia operátorral. A harmadik_tomb, átveszi az elso_tomb tartalmát Harmadik tömb első elemének tartalma = 4 Harmadik tömb második elemének tartalma = 8 Harmadik tömb tartalmát megváltoztatjuk, referencia operátor hatására, az első tömb tartalma is megváltozik. Harmadik tömb első elemének tartalma = 4 Harmadik tömb második elemének tartalma = 8 Harmadik tömb harmadik elemének tartalma = 5 Első tömb első elemének tartalma = 4 Első tömb második elemének tartalma = 8 Első tömb harmadik elemének tartalma = 5 |