Végigmegy a tömb

feladat
El kell menni egyenként, és feldolgozza az összes vagy néhány elem
zsaruk tömb.

döntés
Használja a foreach nyilatkozata:

foreach ($ tomb as $ ertek) // fellépés $ value
>

Vagy egy sor kulcsok és értékek:

foreach ($ tomb as $ kulcs => $ ertek) // Act II
>

Egy másik módja az, hogy egy a nyilatkozatot:
for ($ kulcs = 0, $ size = count ($ tomb); $ kulcs $ költség).
>

Az utasítás foreach PHP nem érinti az eredeti tömb, és egy-egy példányt.


Ezzel szemben, ha az egyes (), és a kezelő számára, PHP megismétli az eredeti tömb. Ezért, ha a tömb módosítás történik belsejében egy hurok, akkor lehetséges (vagy nem kapja) a várt viselkedést.

Ha módosítani kell a tömb, használjunk közvetlen linket is:

Változók által visszaadott egyes (), nem utal a kezdeti értékeket a tömb
- egy példányt őket, így változtatni, nem tükröződik a tömbben. Ezért meg kell módosítani a változó $ elem [$ item] helyett a változó $ elemet.

Ha minden egyes () PHP felügyeli és tárolja a helyzetben a ciklusban. Ahhoz, hogy kezdődik az első ciklus után az első lépés, hívja a reset () függvény visszatérési mutató visszakerüljön abba a pozícióba, mielőtt a ciklus. egyébként
A funkció minden () értéket ad vissza hamis.

A for ciklus csak akkor működik, abban az esetben a tömbök egymás egész kulcsokat. Ha a hossza a tömb nem változik, akkor neeffektivnopri mindegyik járat ciklus újra hatására a count () függvény segítségével kiszámíthatja a változó $ terméket.


Ezért a tárolás hossza a tömb, mindig a változó $ méret:

for ($ item = 0, $ size = count ($ elem); $ item = 0; $ item--).
>

Asszociatív változata a for ciklus:

A (reset ($ tomb); $ kulcs = kulcs ($ array) mellett ($ array)).
>

Ez azt eredményezi, hogy hiba, ha minden elemet tartalmaz karakterlánc értékét egyenlővé hamis, ezért úgy tűnik, hogy a rendes érték, mint a 0, vezethet korai befejezése a ciklus.

Végül használd array_map () függvény, hogy minden egyes tétel feldolgozási funkciók:

// fordítani minden szót kisbetűs
$ Lc = array_map (strtolower ', $ szó);

Az első érv array_map () függvény a neve a függvény, amely módosítja egy külön elem, és a második argumentum - egy tömb, amely a feldolgozott egy ciklusban.

Általában ezeket a funkciókat kell tekinteni kevésbé rugalmas, mint a korábban tárgyalt módszerekkel, de ezek különösen jól alkalmazható és összekapcsolja több tömbök.


Ha ez nem ismert, hogy a feldolgozott adatokat skalárnak vagy tömbként, meg kell előznie az egy foreach állítás nem egy tömb. Ennek egyik módja - ez a használata is_array () függvényt:

if (is_array ($ elem)) // kód foreach hurok tömb
> Else // kódot skalár mennyiség
>

Egy másik módja az, hogy erő az átalakítás az összes változót a tömbben a settype () funkció:

settype ($ példány, 'array');
// kód hurok tömbök

Ez bekapcsolja a skalár értéket egyetlen elemből álló tömb, és teszi a kódot vonzóbbá rovására kevés további fölött.

Kapcsolódó cikkek