Podaci navedeni u nizovima mogurazlikuju se po vrsti vrijednosti i njihovoj veličini, a broj se elemenata ne može uvijek odrediti unaprijed. Moderno programiranje, posebno u distribuiranoj verziji, omogućuje vam stvaranje složenih struktura podataka, čiji se sadržaj i svojstva mogu dinamički odrediti u neodređeno vrijeme, kao rezultat različitih radnji ili događaja u drugom slijedu.
U fazi razvoja nije uvijek moguće predvidjeti operativni proces, pružiti sve moguće mogućnosti za prezentaciju i upotrebu informacija, dinamiku njihovog izgleda i upotrebe.
Sintaksa petlje sadržaja
Formulirajući sintaksu foreach, PHP je predložio dvijemogućnosti pristupa elementima. Obje su neovisne o vrsti ključa ili vrsti vrijednosti i mogu se oponašati normalnom petljom. Predlaže se da se niz smatra zbirkom elemenata čiji broj u početku nije utvrđen. Niz se može oblikovati u hodu, sa ili bez tipki. Element se može izbrisati u polju, ključevi mogu biti asocijativni i tvornički oblikovani.
foreach ($ aArrayName kao $ xValue) {tijelo petlje}
Takva konstrukcija obvezuje PHP foreach petljuproći kroz sve elemente u nizu. U tijelu petlje, varijabla $ xValue uzastopno će uzimati sve vrijednosti niza $ aArrayName redoslijedom kojim su dodane. Vrijednosti ključa stavke neće biti dostupne.
foreach ($ aArrayName kao $ xKey => $ xValue) {tijelo petlje}
Ovdje također, izvršavanje foreach konstrukcije, PHPskenirat će cjelokupni sadržaj polja, ali u tijelu petlje i varijabla $ xValue i varijabla $ xKey, ključ elementa, poprimit će odgovarajuće vrijednosti u parovima.
Slijed elemenata
Unutar foreach PHP će predložiti sadržaj uredoslijedom dodavanja elemenata, ali ako je tijekom formiranja niza bilo ponovljenih dodavanja / brisanja, a nešto je dodano s ključevima, a nešto bez, onda je najbolje raditi s nizom ne s položaja slijed elemenata, ali na temelju njihovog sadržaja ili tipki.
Iz različitih objektivnih razlogaslijed unutar niza ne smije se slijediti i / ili možda nije važan, ali u svakom slučaju ne bi trebao biti vođen. U jednostavnim zadacima, na trivijalnim skupovima podataka, nema problema, a algoritam se može konfigurirati za sekvencijalnu obradu, ali kada mnogi čimbenici utječu na proces stvaranja / uređivanja niza, trebali biste se usredotočiti na sadržaj.
Moderni "ispravni" elementi
Sa stanovišta vlastitog koncepta, čak i ne uzimajući u obzir slične jezike, PHP niz foreach mora biti dizajniran neovisno, uzimajući u obzir stvarni specifični zadatak.
Vježbajte, kada postoji dano, a dano ima indeks u općoj zbirci sličnih prema određenom kriteriju, - bilo je jučer.
Indeks je postao ključ, a niz je postaoasocijativni niz. Odnosno, ključ je izgubio sekvencijalnu jedinstvenost (obično je bio sekvencijalni: 0, 1, 2, ... n) i postao je također vrijednost, ali jednostavna vrijednost (odnosno ključ) povezana sa stvarnom vrijednošću (koja jest, sadržaj elementa). Ovo je danas, ovo je točno, ali nije savršeno.
Zbog toga PHP petlju foreach smatra alternativom regularnoj petlji orijentiranoj na redovite nizove. To je prije svega, a to je ono što je vrlo važno, jer iz ovoga proizlazi stvarna ispravnost elemenata nizakao i njihovi ključevi!
Ispravni nizovi ispravnih elemenata
Prvo je bio element, zatim dva elementa ... ovako se pojavio niz elemenata i petlja kroz niz od njih:
za ($ i = 0; $ i <count ($ aArrayName); $ i ++) {
tijelo obrade svakog $ aArrayName [$ i]
}
Tada je element dobio svoje ime umjesto bezličnih 0, 1, 2, ... n - ključ, a zatim su nizovi postali asocijativni i tada je bila potrebna foreach petlja - "petlja na svakom":
foreach ($ aArrayName kao $ xKey => $ xValue) {
tijelo obrade svakog $ aArrayName [$ xKey] ili $ xValue koje je isto
}
Sada je došlo vrijeme kada bi ispravni elementi trebali doći u polje., odnosno one koje su same po sebi.Oni sami znaju svoj indeks, svoj sadržaj, svoje mjesto u slijedu; skloni su manifestirati vlastiti odabir slijeda i delegirati sve te mogućnosti stvarnom nizu koji ih sadrži.
Takvi ispravni nizovi će se obraditisami od sebe. Jednostavno neće biti posebne potrebe za korištenjem običnih petlji i petlji za svaku od njih. Formalno, sintaksa i semantika to već dopuštaju, pitanje stoji samo iza inertnosti svijesti programera.