Elemek hozzáadása egy tömbhöz
Ha a tömb létezik, további elemeket lehet hozzáadni hozzá. Ez közvetlenül a hozzárendelési operátor (egyenlőségjel) használatával történik, ugyanúgy, mint egy karakterlánchoz vagy számhoz való érték hozzárendelése. Ebben az esetben nem kell megadni a hozzáadott elem kulcsát, de minden esetben a tömb elérésekor meg kell adni szögletes zárójelek
. Két új elem hozzáadásával a $Listhez a következőket írjuk:
$List = "körte";
$List = "paradicsom";
. Két új elem hozzáadásával a $Listhez a következőket írjuk:
$List = "körte";
Ha a kulcs nincs megadva, minden elem hozzáadódik a meglévő tömbhöz, és a következő sorszámmal indexelődik. Ha az előző szakaszból új elemeket adunk a tömbhöz, amelynek elemei 1-es, 2-es és 3-as indexszel rendelkeztek, akkor a körtéké 4-es, a paradicsomé pedig 5-ös indexű lesz. Ha kifejezetten megadunk egy indexet, és a hozzá tartozó érték már létezik, az adott helyen meglévő érték elvész, és helyébe egy új kerül:
A soups.php szkript átírásával megpróbálunk új elemeket hozzáadni a tömbhöz. Ha először kinyomtatjuk a tömb eredeti elemeit, majd az eredetieket a hozzáadott elemekkel együtt, könnyen áttekinthetjük a bekövetkezett változásokat.
Ahogyan az strlen() függvény segítségével megtudhatja egy karakterlánc hosszát (a benne lévő karakterek számát), a count() függvény segítségével könnyen meghatározhatja a tömb elemeinek számát is:
- $HowMany = count($Array); Nyissa meg a soups.php fájlt.
- szövegszerkesztő Miután inicializálta a tömböt az array() függvénnyel, adja hozzá a következő bejegyzést:
- A count() függvény határozza meg, hogy hány elem van a $Soups tömbben. Ha ezt az értéket egy változóhoz rendeljük, akkor az kinyomtatható. Adjon hozzá három további elemet a tömbhöz.
- $Soups["Saturday"] = "Brokkolikrém"; Számolja meg a tömb elemeit, és írja ki ezt az értéket.
- \n");
$HowMany = count($Levesek);
print("A tömb $HowMany elemeket tartalmaz.
\n");
$Soups["Thursday"] = "Csirke tészta";
$Soups["Friday"] = "Paradicsom";
$HowManyNow = count($Levesek);
print("A tömb most $HowManyNow elemeket tartalmaz.
Mentse el a szkriptet (7.2. lista), töltse fel a szerverre és tesztelje a böngészőben (ábra).
1
2
3
4
5 Tömbök használata
6 $Levesek = array(
7 "Monday"=>"Clam Chowder",
8 "Kedd"=>"White Chicken Chili",
9 "Wednesday"=>"Vegetáriánus");
11 print("A tömb tartalmazza: $HowMany
elemeket.
\n");
12 $Soups["Thursday"] = "Csirke tészta";
13 $Soups["Friday"] = "Paradicsom";
14 $Soups["Saturday"] = "Tejszín
Brokkoli";
15 $HowManyNow = count($Levesek);
16 print("A tömb most tartalmazza
elemeket.
17 ?>
18
19
$HowManyNow eleme. PHP 4.0-ban jelent megúj funkció
, amely lehetővé teszi az egyik tömb hozzáadását a másikhoz. Ezt a műveletet tömbök egyesítésének vagy összefűzésének is nevezhetjük. Az array_merge() függvény meghívása a következő:
$NewArray = array_merge($OneArray, $TwoArray);
Ezzel a funkcióval átírhatja a soups.php oldalt, ha olyan szerveren dolgozik, amelyen PHP 4.0 van telepítve.
- Két tömb összevonása
- Nyissa meg a soups.php fájlt egy szövegszerkesztőben, ha még nincs megnyitva. Miután inicializálta a tömböt az array() függvénnyel, adja hozzá a következő bejegyzést:
- Két tömböt egyesítsünk egybe. $TheSoups = array_merge($Levesek, $Levesek2);
- Számolja meg az új tömb elemeit, és nyomtassa ki az eredményt. $HowMany3 = count($TheSoups);
- Zárja be a PHP-t és a HTML dokumentumot. ?>
- Mentse el a fájlt (7.3. lista), töltse fel a szerverre és tesztelje a böngészőben (ábra).
A $Soups tömb inicializálása után számolja meg az elemeit, és nyomtassa ki az eredményt.
print("A tömb most $HowManyNow elemeket tartalmaz.
- print("A $Soups tömb $HowMany elemeket tartalmaz.
"Thursday">"Csirke tészta",
"Friday">"Paradicsom",
"Saturday"=>"Brokkolikrém");
$Hányan2 = count($Levesek2);
print("A $Soups2 tömb $HowMany2 elemeket tartalmaz.
print("A tömb most $HowManyNow elemeket tartalmaz.
Ügyeljen arra, hogy a tömbök ebben a sorrendben legyenek elrendezve ($Levesek, majd $Levesek2), vagyis a csütörtök és a péntek elemeit hozzá kell adni a hétfő és szerda elemeihez, és nem fordítva.
print("A $TheSoups tömb tartalmazza
-$HowMany3 elem.
print("A tömb most $HowManyNow elemeket tartalmaz.
7.3. lista Az Array_merge() függvény új. Ez egyike a PHP 4.0 számos további funkciójának, amelyet tömbökkel való együttműködésre terveztek. A tömbök használatával sok időt takaríthat meg.
1
2
3
4
5 6 $ Levesek = tömb!
7 "Monday"=>"Clam Chowder",
"Tuesday">"White Chicken Chili",
8 "Szerda"=>"Vegetáriánus"
9);
10 $HowMany = count($Levesek);
11 print("A $Soups tömb $HowMany elemeket tartalmaz.
elemeket.
12 $Levesek2 = array(
13 "Csütörtök"=>"Csirke tészta",
14 "Friday">"Paradicsom",
15 "Szombat"=>"Brokkolikrém"
16); .
17 $HowMany2 = count($Levesek2);
18 print ("A $Soups2 tömb $HowMany2 elemeket tartalmaz.
elemeket.
19 $TbeSoupe = array_merge ($Levesek, $Levesek2);
20 $HowMany3 = szám ($TheSoups) ;
21 print ("A $TheSoups tömb .$HowMany3 elemet tartalmaz.
elemeket.
22 ?> "
23
24
Legyen óvatos, amikor közvetlenül ad hozzá elemeket egy tömbhöz. Ez így történik helyesen: $Ar ray = "Add This"; iyai$Aggau = "Add This";, de ez így helyes: $Aggau = "Add This";. Ha elfelejti beírni a zárójelet, a hozzáadott érték tönkreteszi a meglévő tömböt, és egyszerű karakterláncsá vagy számmá alakítja.
A PHP 4.0 számos új funkcióval rendelkezik a tömbökkel való munkavégzéshez. Nem mindegyiket tárgyalja a könyv. A témával kapcsolatos teljes körű tájékoztatást azonban a PHP nyelvi kézikönyve tartalmazza, amely a PHP webhelyén található. Ügyeljen arra, hogy ne használjon a PHP 4.0-ra jellemző új szolgáltatásokat, ha a szerveren PHP 3.x fut.
PHP Támogatja a skaláris és összetett adattípusokat. Ebben a cikkben az egyik összetett típust tárgyaljuk: a tömböket. A tömb olyan adatértékek gyűjteménye, amelyek kulcs-érték párok rendezett halmazaként vannak rendezve.
Ez a cikk egy tömb létrehozásáról és elemek tömbhöz való hozzáadásáról szól. Számos beépített függvény működik a tömbökkel PHP mert a tömbök gyakoriak és hasznosak. Például, ha egynél több e-mail címre szeretne e-mailt küldeni, akkor az e-mail címeket egy tömbben tárolhatja, majd a tömbön keresztül továbbhaladva üzeneteket küldhet a tömbből vett e-mail címre.
Indexelt és asszociatív tömbök
A PHP-ben kétféle tömb létezik: index és asszociatív. Az indexelt tömb kulcsai 0-tól kezdődő egész számok. Az indexelt tömbök akkor használatosak, ha egy adott pozícióra van szükség a tömbben. Az asszociatív tömbök úgy viselkednek, mint egy táblázat két oszlopa. Az első oszlop az érték eléréséhez használt kulcs (a második oszlop).
PHP belsőleg az összes tömböt asszociatív tömbként tárolja, így az asszociatív és az indexelt tömbök között csak az a különbség, hogy a kulcsok megjelennek. Egyes függvények elsősorban indexelt tömbökhöz használhatók, mivel azt feltételezik, hogy a kulcsok 0-tól kezdődő szekvenciális egész számok. Mindkét esetben a kulcsok egyediek – vagyis nem lehet két elem ugyanazzal a kulccsal, függetlenül attól, hogy a kulcs egy karakterlánc vagy egész szám.
IN PHP a tömbök elemeinek belső sorrendje kulcsoktól és értékektől független, és vannak olyan függvények, amelyekkel e belső sorrend alapján lehet bejárni a tömböket.
Elemek meghatározása egy tömbben
Egy tömb bizonyos értékeit úgy érheti el, hogy a tömb nevét és az elemkulcsot (néha indexnek is nevezik) szögletes zárójelben használja:
$age["Fred"]; $shows;
A kulcs lehet karakterlánc vagy egész szám. A karakterlánc-értékeket számként (kezdő nullák nélkül) a rendszer egész számként kezeli. Így, $tömbÉs $tömb['3'] ugyanarra az elemre utalnak, de $tömb['03'] egy másik elemre utal. A negatív számok is használhatók kulcsként, de nem adnak meg pozíciókat a tömb végétől, mint pl. Perl.
A kulcsot nem szükséges idézőjelbe írni. Például, $array['Fred'] mint $arrat. Ennek ellenére jó stílusnak tartják PHP mindig használjon idézőjeleket. Ha az index idézőjelek nélkül szerepel, akkor a PHP a konstans értékét használja indexként:
Define("index",5); echo $tömb; // a $tömböt adja vissza, nem a $tömböt["index"];
Ha egy számot szeretne behelyettesíteni az indexbe, akkor ezt kell tennie:
$age["Klón$szám"]; // visszaadja, például $age["Clone5"];
A kulcsot azonban ne idézze a következő esetekben:
// hibás nyomtatás "Hello, $person["name"]"; print "Hello, $person["név"]"; // helyes nyomtatás "Hello, $person";
Adatok tárolása tömbökben
Amikor megpróbál értéket tárolni egy tömbben, akkor a tömb automatikusan létrejön, ha korábban nem létezett, de ha egy nem definiált tömbből próbál lekérni egy értéket, a tömb nem jön létre. Például:
// A $addresses eddig nem lett meghatározva echo $addresses; // semmi echo $címek; // semmi $addresses = "spam@cyberpromo.net"; echo $címek; // "Array" nyomtatása
Egy egyszerű hozzárendeléssel inicializálhat egy tömböt egy programban:
$addresses = "spam@cyberpromo.net"; $címek = "abuse@example.com"; $címek = "root@example.com"; // ...
Deklaráltunk egy indextömböt 0-tól kezdődő egész indexekkel.
Asszociatív tömb:
$ár["Tömítés"] = 15,29; $ár["kerék"] = 75,25; $ár["Abroncs"] = 50,00; // ...
Egy tömb inicializálásának egyszerűbb módja a konstrukció használata Sor(), amely egy tömböt épít fel argumentumaiból:
$címek = array("spam@cyberpromo.net", "abuse@example.com", "root@example.com");
Asszociatív tömb létrehozásához a Sor(), használat => az indexeket az értékektől elválasztó szimbólum:
$ár = array("Tömítés" => 15,29, "Kerék" => 75,25, "Abroncs" => 50,00);
Ügyeljen a szóközhasználatra és az igazításra. Csoportosíthatnánk a kódot, de kevésbé lenne egyértelmű:
$ár = array("Tömítés"=>15.29,"Kerék"=>75.25,"Gumi"=>50.00);
Üres tömb létrehozásához meg kell hívni a konstrukciót Sor()érvek nélkül:
$címek = Array();
Megadhat egy kezdőkulcsot egy tömbben, majd egy értéklistát. Az értékek bekerülnek a tömbbe, a kulccsal kezdve, majd növelve:
$days = array(1 => "hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat", "vasárnap"); // A 2 a kedd, a 3 a szerda stb.
Ha a kezdő index egy karakterlánc, akkor a következő indexek 0-tól kezdődő egész számokká válnak. Tehát a következő kód valószínűleg hiba:
$whoops = array("Péntek" => "Fekete", "Barna", "Zöld"); // ugyanaz, mint a $whoops = array("Friday" => "Fekete", 0 => "Barna", 1 => "Zöld");
Új elem hozzáadása egy tömb végéhez
Ha több értéket szeretne beszúrni egy meglévő indexelt tömb végére, használja a következő szintaxist:
$család = array("Fred", "Wilma"); // $family = "Fred" $family = "Kavicsok"; // $family = "Pebbles"
Ez a konstrukció azt feltételezi, hogy a tömb indexei számok, és hozzárendeli az elemhez a következő elérhető numerikus indexet, 0-tól kezdve. Ha megpróbálunk elemet hozzáadni egy asszociatív tömbhöz, az szinte mindig programozói hiba, de PHP figyelmeztetés nélkül új elemeket ad hozzá numerikus indexekkel (0-tól kezdődően):
$person = array("név" => "Fred"); // $person["name"] = "Fred"; $személy = "Wilma"; // $person = "Wilma"
Ebben a szakaszban befejezzük a PHP tömbökkel való munka bevezető részét. Várom, hogy találkozzunk a következő cikkben.
array_pad
Több elemet ad a tömbhöz.
Szintaxis:
Array array_pad(tömb bemenet, int pad_size, vegyes pad_érték)
Az array_pad() függvény visszaadja annak a bemeneti tömbnek a másolatát, amelyhez pad_values elemeket adtunk, így a kapott tömbben lévő elemek száma pad_size lesz.
Ha pad_size>0, akkor az elemek a tömb végére kerülnek, és ha<0 - то в начало.
Ha a pad_size értéke kisebb, mint az eredeti bemeneti tömb elemei, akkor nem történik hozzáadás, és a függvény az eredeti bemeneti tömböt adja vissza.
Példa az array_pad() függvény használatára:
$arr = array(12, 10, 4);
$eredmény = array_pad($arr, 5, 0);
// $eredmény = array(12, 10, 4, 0, 0);
$eredmény = array_pad($arr, -7, -1);
// $eredmény = array(-1, -1, -1, -1, 12, 10, 4)
$eredmény = array_pad($arr, 2, "noop");
// nem ad hozzá
array_map
Egyéni függvény alkalmazása a megadott tömbök összes elemére.
Szintaxis:
Array array_map(vegyes visszahívás, tömb arr1 [, tömb ...])
Az array_map() függvény egy tömböt ad vissza, amely tartalmazza az összes megadott tömb elemeit a felhasználói visszahívási függvény általi feldolgozás után.
A felhasználó által definiált függvénynek átadott paraméterek számának meg kell egyeznie az array_map() függvénynek átadott tömbök számával.
Példa az array_map() függvény használatára: Egyetlen tömb feldolgozása
vissza $n*$n*$n;
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("kocka", $a);
print_r($b);
?>
Sor(
=> 1
=> 8
=> 27
=> 64
=> 125
)
Példa az array_map() függvény használatára: Több tömb feldolgozása
return "A $n szám spanyolul $m";
}
függvény map_spanyol($n, $m) (
return tömb ($n => $m);
}
$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");
$c = array_map("show_spanish", $a, $b);
print_r($c);
$d = array_map("térkép_spanyol", $a , $b);
print_r($d);
?>
A megadott példa a következőt fogja kiadni:
// $cArray( kinyomtatása
=> 1. szám spanyolul - uno
=> 2. szám spanyolul - dos
=> 3. szám spanyolul - tres
=> 4. szám spanyolul - cuatro
=> 5. szám spanyolul - cinco
)
// $dArray( kinyomtatása
=> Tömb
=> uno
)
=> Tömb
=> dos
)
=> Tömb
=> tres
)
=> Tömb
=> cuatro
)
=> Tömb
=> cinco
)
Általában az array_map() függvényt az azonos méretű tömbökön használják. Ha a tömbök különböző hosszúságúak, akkor a kisebbek üres értékű elemekkel vannak kitöltve.
Megjegyzendő, hogy ha a feldolgozási függvény neve helyett null értéket ad meg, akkor egy tömb tömb jön létre.
Példa az array_map() függvény használatára: Tömbök létrehozása
$b = array("egy", "kettő", "három", "négy", "öt");
$c = array("uno", "dos", "tres", "cuatro", "cinco");
$d = array_map(null, $a, $b, $c);
print_r($d);
?>
A megadott példa a következőt fogja kiadni:
Sor(
=> Tömb
=> 1
=> egy
=> uno
)
=> Tömb
=> 2
=> kettő
=> dos
)
=> Tömb
=> 3
=> három
=> tres
)
=> Tömb
=> 4
=> négy
=> cuatro
)
=> Tömb
=> 5
=> öt
=> cinco
)
PHP 4 >= 4.0.6, PHP 5 által támogatott funkció
array_pop
Lekéri és eltávolítja a tömb utolsó elemeit.
Szintaxis:
Vegyes array_pop(array arr);
Az array_pop() függvény előugrik az utolsó elemet az arr tömbből, és visszaadja azt, majd eltávolítja. Ezzel a funkcióval veremszerű szerkezeteket építhetünk. Ha az arr tömb üres volt, vagy nem tömb, a függvény az üres NULL karakterláncot adja vissza.
Az array_pop() függvény használata után a tömbkurzor az elejére áll.
Példa az array_pop() függvény használatára:
$gyümölcs = array_pop($verem);
print_r($verem);
print_r($gyümölcs);
?>
A példa a következőt fogja kiadni:
Sor(
=> narancs
=> banán
=> alma
)
PHP 4, PHP 5 által támogatott funkció
array_push
Egy vagy több elemet ad a tömb végéhez.
Szintaxis:
Int array_push(tömb tömb, vegyes var1 [, vegyes var2, ..])
Az array_push() függvény hozzáadja a var1, var2 stb. elemeket az arr tömbhöz. Numerikus indexeket rendel hozzájuk -- pontosan úgy , mint a szabványokhoz .
Ha csak egy elemet kell hozzáadnia, egyszerűbb lehet ezt az operátort használni:
Array_push($Arr,1000); // a függvény meghívása $Arr=100; // ugyanaz, csak rövidebb
Példa az array_push() függvény használatára:
array_push($verem, "alma", "málna");
print_r($verem);
?>
A példa a következőt fogja kiadni:
Sor(
=> narancs
=> banán
=> alma
=> málna
)
Kérjük, vegye figyelembe, hogy az array_push() függvény a tömböt veremként kezeli, és mindig a végéhez ad hozzá elemeket.
PHP 4, PHP 5 által támogatott funkció
array_shift
Lekéri és eltávolítja a tömb első elemét.
Szintaxis:
Vegyes array_shift(tömb arr)
Az array_shift() függvény veszi az arr tömb első elemét, és visszaadja azt. Nagyon hasonlít az array_pop(),
de csak a kezdeti elemet kapja, nem a végső elemet, és a teljes tömb meglehetősen erős „rázását” is produkálja: végül is az első elem kinyerésekor be kell állítani az összes fennmaradó elem összes numerikus indexét, mert a tömb összes következő eleme egy pozícióval előre van tolva. A karakterlánc tömb kulcsai nem változnak.
Ha az arr üres, vagy nem tömb, a függvény NULL-t ad vissza.
A funkció használata után a tömbmutató az elejére kerül.
Példa az array_shift() függvény használatára:
$gyümölcs = array_shift($verem);
print_r($verem);
?>
Ez a példa a következőt fogja kiadni:
Sor(
=> banán
=> alma
=> málna
)
és a $fruit változó értéke "narancs"
PHP 4, PHP 5 által támogatott funkció
array_unshift
Egy vagy több értéket ad a tömb elejéhez.
Szintaxis:
Int array_unshift(lista arr, vegyes var1 [,vegyes var2, ...])
Az array_unshift() függvény hozzáadja az átadott var értékeket az arr tömb elejéhez. Az új elemek sorrendje a tömbben megmarad. A tömb összes digitális indexe úgy módosul, hogy az nulláról induljon. A tömb összes karakterlánc-indexe változatlan.
A függvény a tömb elemeinek új számát adja vissza.
Példa az array_unshift() függvény használatára:
array_unshift($queue, "alma", "málna");
?>
Most a $queue változónak a következő elemei lesznek:
Sor(
=> alma
=> málna
=> narancs
=> banán
)
PHP 4, PHP 5 által támogatott funkció
array_unique
Eltávolítja az ismétlődő értékeket egy tömbből.
Szintaxis:
Array array_unique(tömb tömb)
Az array_unique() függvény egy tömböt ad vissza, amely az arr tömbben található összes egyedi értékből áll a kulcsokkal együtt, az összes ismétlődő érték eltávolításával. Az első talált kulcs=>értékpárok a kapott tömbbe kerülnek. Az indexek megmaradnak.
Példa az array_unique() függvény használatára:
"zöld", "piros", "b" =>
"zöld", "kék", "piros");
print_r($eredmény);
?>
A példa a következőt fogja kiadni:
Sor(
[a] => zöld
=> piros
=> kék
)
Példa az array_unique() függvény használatára: Adattípusok összehasonlítása
$eredmény = array_unique($bemenet);
var_dump($eredmény);
?>
A példa a következőt fogja kiadni:
Tömb(2) (
=> int(4)
=> string(1) "3"
}
PHP 4 >= 4.0.1, PHP 5 által támogatott funkció
array_chunk
A függvény részekre osztja a tömböt.
Szintaxis:
Array array_chunk(tömb tömb, int méret [, logikai megőrzési_kulcsok])
Az array_chunk() függvény az eredeti tömböt több tömbre bontja, amelyek hosszát a szám mérete határozza meg. Ha az eredeti tömb mérete nem osztható pontosan az alkatrészek méretével, akkor a végső tömb mérete kisebb lesz.
Az array_chunk() függvény egy többdimenziós tömböt ad vissza, amelynek indexei 0-tól kezdődnek a kapott tömbök számáig, és az értékek a felosztás eredményeként kapott tömbök.
Az opcionális keep_keys paraméter megadja, hogy az eredeti tömb kulcsait meg kell-e őrizni vagy sem. Ha ez a paraméter hamis (az alapértelmezett érték), akkor a kapott tömbök indexeit nullától kezdődő számok határozzák meg. Ha a paraméter igaz, akkor az eredeti tömb kulcsai megmaradnak.
Példa az array_chunk() függvény használatára:
$array = array("1. elem",
"2. elem"
"3. elem"
"4. elem"
"5. elem");
print_r(array_chunk($tömb, 2));
print_r(tömb_csonk($tömb, 2, IGAZ));
A példa a következőt fogja kiadni:
Sor(
=> Tömb
=> 1. elem
=> 2. elem
)
=> Tömb
=> 3. elem
=> 4. elem
)
=> Tömb
=> 5. elem
)
)
Sor(
=> Tömb
=> 1. elem
=> 2. elem
)
=> Tömb
=> 3. elem
=> 4. elem
)
=> Tömb
=> 5. elem
)
PHP 4 >= 4.2.0, PHP 5 által támogatott funkció
array_fill
A függvény kitölti a tömböt meghatározott értékekkel.
Szintaxis:
Array array_fill(int start_index, int num, vegyes érték)
Az array_fill() függvény egy tömböt ad vissza, amely a num size value paraméterben megadott értékeket tartalmazza, kezdve a start_index paraméterben megadott elemmel.
Példa az array_diff_uassoc() használatára:
print_r($a);
?>
A példa a következőt fogja kiadni:
Sor(
=> banán
=> banán
=> banán
=> banán
=> banán
=> banán
)
PHP 4 >= 4.2.0, PHP 5 által támogatott funkció
array_filter
A függvény szűrőt alkalmaz egy tömbre egyéni függvény használatával.
Szintaxis:
Array array_filter(tömbbemenet [, visszahívás])
Az array_filter() függvény egy tömböt ad vissza, amely a bemeneti tömbben lévő értékeket tartalmazza, a felhasználói visszahívási függvény eredményeinek megfelelően szűrve.
Ha a bemeneti tömb asszociatív tömb, akkor az indexek megmaradnak a kapott tömbben.
Példa az array_filter() függvény használatára:
return ($var % 2 == 1);
}
függvény páros($var) (
return ($var % 2 == 0);
}
$tömb1 = tömb("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$tömb2 = tömb(6, 7, 8, 9, 10, 11, 12);
echo "Odd:n";
print_r(tömb_szűrő($tömb1, "páratlan"));
echo "Even:n";
t_r(tömb_szűrő($tömb2, "páros"));
?>
A példa a következőt fogja kiadni:
Páratlan: Array(
[a] => 1
[c] => 3
[e] => 5
Páros: Array(
=> 6
=> 8
=> 10
=> 12
)
Érdemes megjegyezni, hogy a szűrési függvény neve helyett megadhat egy tömböt, amely az objektumra való hivatkozást és a metódus nevét tartalmazza.
Azt is érdemes megjegyezni, hogy egy tömb array_filter() függvénnyel történő feldolgozásakor nem módosítható: adjunk hozzá, távolítsunk el elemeket vagy állítsuk vissza a tömböt, mert ez a funkció hibás működéséhez vezethet.
PHP 4 >= 4.0.6, PHP 5 által támogatott funkció
Nézzük meg, hogyan írhatunk értékeket egy tömbbe. Egy meglévő tömb módosítható a benne lévő értékek explicit beállításával. Ez úgy történik, hogy értékeket rendelünk egy tömbhöz.
A tömbelemhez tartozó érték hozzárendelése ugyanaz, mint a változóhoz való érték hozzárendelése, kivéve a tömbváltozó neve után hozzáadott szögletes zárójeleket (). Az elem indexe/kulcsa szögletes zárójelben van feltüntetve. Ha nincs megadva index/kulcs, a PHP automatikusan kiválasztja a legkisebb üres numerikus indexet.
"nulla", 1 => "egy");
$my_arr = "kettő";
Egy adott érték megváltoztatásához egyszerűen hozzá kell rendelni egy új értéket egy meglévő elemhez. Ha egy tömb bármely elemét el szeretné távolítani az indexével/kulcsával, vagy magát a tömböt teljesen el szeretné távolítani, használja az unset() függvényt:
Megjegyzés: Mint fentebb említettük, ha egy elemet kulcs megadása nélkül adunk hozzá egy tömbhöz, a PHP automatikusan az előző legnagyobb egész kulcsértéket fogja használni 1-gyel növelve. Ha még nincsenek egész indexek a tömbben, akkor a kulcs 0 lesz. (nulla).
Vegye figyelembe, hogy a kulcs legnagyobb egész értéke jelenleg nem feltétlenül létezik a tömbben, ennek oka lehet a tömbelemek eltávolítása. Az elemek eltávolítása után a tömb nem indexelődik újra. Vegyük a következő példát, hogy világosabb legyen:
"; print_r($my_arr); // Az elem hozzáadása (vegye figyelembe, hogy az új kulcs 3 lesz 0 helyett). $my_arr = 6; echo "
"; print_r($my_arr); // Újraindexelés: $my_arr = array_values($my_arr); $my_arr = 7; echo "
"; print_r($my_arr); ?>
Ez a példa két új függvényt használt, a print_r() és az array_values() függvényt. Az array_values() függvény egy indexelt tömböt ad vissza (újraindexeli a visszaadott tömböt numerikus indexekkel), a print_r függvény pedig úgy működik, mint a var_dump, de a tömböket olvashatóbb formában adja ki.
Most megnézhetjük a tömbök létrehozásának harmadik módját:
A példa egy harmadik módszert mutatott be egy tömb létrehozására. Ha a $weekdays tömb még nem jött létre, akkor létrejön. Ez a fajta tömb létrehozása azonban nem javasolt, mert ha a $weekdays változó már létrejött, és értéket tartalmaz, az váratlan eredményeket okozhat a szkriptből.
Ha kétségei vannak azzal kapcsolatban, hogy egy változó tömb-e, használja az is_array függvényt. Az ellenőrzést például a következőképpen lehet elvégezni:
"; $no = "normál karakterlánc"; echo is_array($no) ? "Tömb" : "Nem tömb"; ?>
Számos függvény és operátor létezik a tömbök konvertálására a PHP-ben: Függvénygyűjtemény a tömbökkel való munkavégzéshez
Számos módja van egy tömb hozzáadásának egy tömbhöz PHP használatával, és mindegyik hasznos lehet bizonyos esetekben.
"Üzemeltető +"
Ez egy egyszerű, de alattomos módszer:
$c = $a + $b
Így csak azok a kulcsok kerülnek hozzáadásra, amelyek még nem szerepelnek az $a tömbben. Ebben az esetben az elemek a tömb végéhez fűződnek.
Ez azt jelenti, hogy ha a $b tömbből származó kulcs nem található meg az $a tömbben, akkor egy ezzel a kulccsal rendelkező elem hozzáadódik a kapott tömbhöz.
Ha az $a tömb már tartalmaz ilyen kulcsú elemet, akkor annak értéke változatlan marad.
Vagyis a kifejezések helyének megváltoztatása megváltoztatja az összeget: $a + $b != $b + $a - ezt érdemes megjegyezni.
Most egy részletesebb példa ennek illusztrálására:
$arr1 = ["a" => 1, "b" => 2]; $arr2 = ["b" => 3, "c" => 4]; var_export($arr1 + $arr2); //tömb (// "a" => 1, // "b" => 2, // "c" => 4, //) var_export($arr2 + $arr1); //tömb (// "b" => 3, // "c" => 4, // "a" => 1, //)
array_merge() függvény
Ezt a funkciót az alábbiak szerint használhatja:
$eredmény = array_merge($arr1, $arr2)
Alaphelyzetbe állítja a numerikus indexeket és lecseréli a karakterláncokat. Kiválóan alkalmas két vagy több tömb összefűzésére numerikus indexekkel:
Ha a bemeneti tömbök ugyanazokkal a karakterlánc-kulcsokkal rendelkeznek, akkor minden következő érték felváltja az előzőt. Ha azonban a tömbök ugyanazokkal a számkulcsokkal rendelkeznek, akkor az utoljára említett érték nem helyettesíti az eredeti értéket, hanem a tömb végére kerül.
array_merge_recursive függvény
Ugyanazt teszi, mint az array_merge, kivéve, hogy rekurzív módon átmegy a tömb minden ágán, és ugyanezt teszi a gyerekekkel.
array_replace() függvény
A tömbelemeket lecseréli más átadott tömbök elemeire.
array_replace_recursive() függvény
Ugyanaz, mint a tömb_csere, de feldolgozza a tömb összes ágát.