/ / Effektive forløkkesløyfer: PHP og riktige matriser

Effektive foreach-løkker: PHP og riktige matriser

Informasjon gitt i arrays kanforskjellig i type verdier og størrelse, og antall elementer kan ikke alltid bestemmes på forhånd. Moderne programmering, spesielt i en distribuert versjon, lar deg lage komplekse datastrukturer, hvis innhold og egenskaper kan bestemmes dynamisk på et ubestemt tidspunkt som et resultat av forskjellige handlinger eller hendelser i en annen sekvens.

foreach php

Det er ikke alltid mulig på utviklingsstadiet å forutsi operasjonsprosessen, sørge for alle mulige alternativer for presentasjon og bruk av informasjon, dynamikken i utseendet og bruken.

Syntaks for innholdssløyfe

Formulere foreach-syntaksen, foreslo PHP toalternativer for tilgang til elementer. Begge er uavhengige av nøkkeltype eller verditype og kan emuleres med en normal sløyfe. Det foreslås å betrakte en matrise som en samling av elementer, hvis antall ikke først blir bestemt. Matrisen kan dannes på farten, med eller uten nøkler. Et element kan slettes i en matrise, nøkler kan være assosiative og dannes som standard.

foreach ($ aArrayName som $ xValue) {loop body}

En slik konstruksjon forplikter PHP foreach loopgå gjennom alle elementene på rad. I kroppen av løkken tar $ xValue-variabelen sekvensielt alle verdiene til $ aArrayName-arrayet i den rekkefølgen de ble lagt til. Elementnøkkelverdier vil ikke være tilgjengelige.

foreach ($ aArrayName som $ xKey => $ xValue) {loop body}

Også her, utførelse av foreach-konstruksjonen, PHPvil skanne hele innholdet i matrisen, men i sløyfens hoveddel vil både $ xValue-variabelen og $ xKey-variabelen, elementtasten, ta tilsvarende verdier parvis.

php foreach loop

Sekvens av elementer

Inside foreach PHP vil foreslå innhold irekkefølgen elementene ble lagt til, men hvis det under dannelsen av matrisen var gjentatte tilføyelser / slettinger, og noe ble lagt til med nøkler, og noe uten, så er det best å jobbe med matrisen ikke fra posisjonen til rekkefølgen av elementer, men basert på innholdet eller tastene.

php foreach array

Av ulike objektive grunnersekvensen i matrisen følges kanskje ikke og / eller har ikke noe å si, men skal uansett ikke føres inn. I enkle oppgaver, på trivielle datasett, er det ingen problemer, og algoritmen kan konfigureres for sekvensiell behandling, men når mange faktorer påvirker prosessen med å lage / redigere en matrise, bør du fokusere på innholdet.

Moderne "riktige" elementer

Fra synspunktet til sitt eget konsept, uten å ta i betraktning engang ubetinget like språk, må PHP foreach-matrisen utformes uavhengig, med tanke på en virkelig spesifikk oppgave.

Øv når det er en gitt, og den gitte har en indeks i den generelle samlingen av lignende i henhold til et bestemt kriterium, - det var i går.

Indeksen har blitt en nøkkel, og matrisen har blittassosiativ matrise. Det vil si at nøkkelen mistet sin sekvensielle unikhet (den var vanligvis sekvensiell: 0, 1, 2, ... n) og ble også en verdi, men en enkel verdi (det vil si en nøkkel) assosiert med en reell verdi (som er innholdet i et element). Dette er i dag, dette er riktig, men ikke perfekt.

Det er derfor PHP anser foreach-sløyfen som et alternativ til den vanlige sløyfen som er orientert mot vanlige matriser. Dette er først og fremst, og det er det som er veldig viktig, fordi det følger av dette ekte korrekthet av matriseelementerså vel som nøklene deres!

Rett matriser med riktige elementer

Først var det et element, deretter to elementer ... slik dukket det opp en rekke elementer og en løkke gjennom en rekke av disse:

for ($ i = 0; $ i <count ($ aArrayName); $ i ++) {

behandlingsorgan for hver $ aArrayName [$ i]

}

Så, i stedet for den ansiktsløse 0, 1, 2, ... n, fikk elementet sitt eget navn - nøkkelen og deretter ble matriser assosiative, og deretter trengte forløkkesløyfen - "loop gjennom hver":

foreach ($ aArrayName som $ xKey => $ xValue) {

behandlingsdelen av hver $ aArrayName [$ xKey] eller $ xValue som er den samme

}

Nå er tiden kommet da de riktige elementene skal komme til matrisen., det vil si de som er i seg selv.De kjenner selv indeksen, innholdet, plassen deres i sekvensen; de har en tendens til å manifestere sitt eget valg av sekvens og delegere alle disse mulighetene til selve matrisen som inneholder dem.

Slike riktige matriser vil bli behandletalene. Det vil rett og slett ikke være et spesielt behov for å bruke vanlige løkker og løkker for hver enkelt. Formelt tillater syntaksen og semantikken allerede dette, spørsmålet er bare bak tregheten til utviklerens bevissthet.