PHP niz: prvo uklonite element, posljednji, po vrijednosti

PHP polja se koriste svugdje. Dodavanje i promjena vrijednosti u pravilu ne uzrokuje poteškoće. Uklanjanje elemenata niza je posebna operacija. Možete jednostavno izbrisati stavku, ali je možete izbrisati i koristiti. Ova nijansa pruža velike mogućnosti.

PHP nizovi

PHP je suvremeni programski jezik, funkcionalnost u radu na nizovima izvršava se na visokoj razini. Programer ima mogućnost da koristi obične i asocijativne nizove, da dizajnira višedimenzionalne strukture podataka, da ima kao bilo koji element niza bilo koje vrste.


Postoji razvijen skup funkcija za rad s nizovima, posebne sintaktičke konstrukcije. Moguće je zaobići polje vlastitim algoritmom i dodijeliti vlastite funkcije obrade.

Primjeri stvaranja i korištenja niza

Funkcija scPrint je pomoćna. Ona rekurzivno zapisuje niz u niz znakova kako bi prikazala rezultate. Niz $ aFruits kreira se na uobičajeni način: vrijednosti se navode, indeksi se automatski dodjeljuju od nule. Posljednji zarez nije važan i ne stvara još jedan prazan element. Niz $ aData je prazan, a zatim se u njega unosi vrijednost. Tri su automati, a dva su asocijativni indeksi koji ne utječu na ukupno numeriranje vrijednosti. Dakle, elementi 'šljiva' i 'breskva' imaju 'nove' i 'svježe' indekse. Niz $ aInfo je višedimenzionalan i asocijativan.
Kako ukloniti element u PHP nizu, pokazuje tri operacijeuklanjanje. Prva operacija uklanja drugi element iz niza $ aFruits, s indeksom jednakim 1. Treba napomenuti da se kasniji indeksi ne pomiču, tj. U cikličkim operacijama s takvim nizom, potrebno je predvidjeti postojanje elementa.


Druga operacija uklanja posljednji i prvi element u nizu $ aData, što potvrđuje nedostatak utjecaja na uklanjanje indeksa i mogućnost istovremenog brisanja nekoliko elemenata. Treće - uklanja niz u nizu i element u nizu koji je uključen u drugi niz.

Normalno uklanjanje stavke - unset

Funkcija unset uklanja. Bez obzira na sve. To može biti samo varijabla ili element niza. Pretpostavlja se da je unset () jezični operator, a ne funkcija. Bez obzira na to, ovaj operator se ne vraća, već ono što mu se prenosi kao parametre koje "uništava". Varijabla ili polje nestaju, kao da nisu.
PHP može ukloniti prazne elemente polja u PHP-u drugačije, u stvari, razmotriti prazan element - to ovisi o programeru. Međutim, nije previše mudro koristiti nekoliko parametara za to u unset () operatoru. Praktičnije je grupirati operacije u grupnim funkcijama. Moderna računala rade vrlo brzo, a PHP vrlo brzo. No, to nije razlog za stvaranje i obradu tona informacija s glomaznim algoritmima, to je objektivna osnova za pristup procesu uklanjanja elemenata niza na progresivne načine.

Brisanje stavki malim metodama

U PHP-u možete ukloniti prazne elemente niza okretanjem niza u niz i okretanjem. Ali ovaj je slučaj pogodan samo zastvarno prazne stavke, nedostaju indeksi ili ponovno indeksiranje polja.
Koncept praznog elementa ovisi o zadatku. Često je postojeći element niza koji sadrži određene informacije prazan. Na primjer, broji se niz posjetitelja. Element niza sadrži:
  • vrijeme dolaska posjetitelja;
  • trenutni način rada;
  • aktivna stranica;
  • posljednja akcija.
  • Ako je razlika između vremena dolaska i vremena zadnje je više od 1 minute (ili druge vrijednosti), onda možemo pretpostaviti da je klijent napustio mjesto. Zapisi takvih klijenata mogu se izbrisati ako je zadatak pratiti popis aktivnih posjetitelja i ne koristiti naprednije metode pomoću javascripta. Međutim, "string" obrada je dobra. Na primjer, u PHP-u brisanje dupliciranih elemenata niza može biti:
    Brz i pristupačan način. Neobavezno upotrijebite znakove '[' i ']' za označavanje svakog elementa, ali zapamtite da pretvaranje niza u niz zahtijeva da se zadovolje jedinstvenost svakog elementa. Simboli za kadriranje trebaju biti odabrani na temelju znakova dopuštenih u elementu. Nevažeće pravilo: svaka stavka u nizu u retku je jedinstvena i ima svoje mjesto (inače, ništa za povratak). Ova metoda je prikladnija kada je zadatak u PHP-u brisanje elementa niza prema vrijednosti. Možete koristiti array_flip i mijenjati vrijednosti i tipke na mjestima, a zatim napraviti klasični unset. Možete koristiti funkciju array_search i pronaći ključnu vrijednost koju želiteizbrisan. No, niža verzija rješenja je jasnija i lakša.

    O dimenzijama i veličinama

    PHP ni na koji način ne ograničava programera: ni u broju mjerenja ni po veličini elemenata. Nema smisla se diviti ovome. Svaki element mora imati najmanju moguću duljinu, a broj mjerenja treba težiti prema jednom. Ako je broj dimenzija niza od više od tri dobar razlog za pregled rješenja. Ako element polja ima duljinu veću od 4000-8000 znakova, treba postojati sumnja u razumnost izgrađene slike podataka.
    Ova ideja ne slijedi iz konteksta funkcije PHP niza: izbrišite stavku, dodajte objekt druge vrste, promijenite nešto u nešto sasvim drugo. Jednostavnost je ključ uspjeha ne samo u životu, već iu algoritmu. Program bi trebao funkcionirati, a ne biti iznenađen njegovom dimenzijom, veličinom i opsegom ideja. Važan rezultat, a ne velika ideja.

    Ideja PHP-a u PHP-u

    Budući da suvremeni programski jezik PHP-a ne prolazi rekurziju i stog. U osnovi, nije važno što programer misli kada koristi funkciju array_pop () u PHP-u: izbrišite zadnji element niza ili ga jednostavno prenesite u varijablu. Ali imajte na umu da je u ovom kontekstu funkcija array_pop iz push & amp; pop, to jest, stack alati, a ne brisanje.
    Ovdje je uobičajeno reći da se ne "briše", već da se "povuče". Semantika se značajno razlikuje. Međutim, funkcija array_shift () u PHP-u: uklanjanje prvog elementa polja ili njegovo izdvajanje - ima drugačiju nijansu. Ovdje se element također ekstrahira u vanjsku varijablu, ineće biti u nizu, ali indeksi su pomaknuti. Prilikom dobivanja prvog elementa iz niza svi elementi koji slijede slijedi pomak, ali samo se numerički indeksi mijenjaju, a mali ostaju nepromijenjeni.

    Izbriši ili promijeni: povijest operacija

    Varijabla - to je vrlo stara prošlost, niz - to je bilo davno, objekt - bio je jučer. O objektno orijentiranom programiranju do sada govorimo, ali ne upotrebljavajte ništa u punoj snazi. Rijetki slučaj u kojem su površna rješenja postala predmetom zaplijenjenih odluka i "obučeni" masom "tijela" sustava upravljanja gradilištem (CMS).
    Objektivno pravilo: ne u broju koda, već u njegovoj kvaliteti! No, nijedan moderni CMS još nije slušao ovo pravilo. Autori vjeruju da rade pravu stvar i znaju što rade. Rezultat (karakteristična značajka): nijedan moderni CMS se ne razlikuje po pristojnoj "figuri" (glatkoća i jednostavnost dizajna), svi imaju ogromnu cjelovitost koda, svako treba poštivati ​​sebe:
  • visokoobrazovan programer;
  • zahtijeva ugradnju;
  • nameće zahtjeve za hosting;
  • stvara poteškoće pri prelasku na drugi hosting;
  • zapravo ometa rad i administraciju.
  • Programeri dugo vremena odlaze na koncept vraćanja, moderno programiranje ne misli na stvaranje softvera bez dvije funkcije:
  • undo;
  • ponoviti.
  • Ne radi se samo o pogrešci, nego u bilo kojoj situaciji, povratak bi trebao biti. U suvremenim sredstvima internetskog programiranja do današnjeg dana, ovaj trenutak ne samo da nije važan, nego iu vrlo ograničenoj mjeri. PHP operacije u nizu: izbrišite element, promijenite vrstu ili dodajte nešto novo - razumljivo. Ali ranije su postojale varijable, zatim nizovi, zatim objekti. Nije li to prigoda za razmišljanje o činjenici da se niz - samo se mijenja tijekom vremena? Niz je struktura podataka tijekom vremena. Nijedan jezik još uvijek ne smatra vrijeme kao sintaktički faktor. O semantici moguće je čak i ne govoriti: od antičkih vremena do danas programeri i korisnici razumiju samo datoteke i mape. Maksimalni razvoj je, na primjer, u PHP-u, prostor naziva se obično vidi u strukturi mapa i datoteka. U tom kontekstu, zabrana u PHP-u u nizu: brisanje elementa, promjena ili dodavanje - zahtijeva od programera da poduzme dodatne radnje. Možete ostaviti sve ono što jest, i ispašće kao i uvijek. Možete uzeti u obzir svaku transakciju na podacima i snimiti je u cijelosti, stvoriti i spremiti povijest poslovanja.
    To će biti potpuno drugačija razina rada i drastično bolji rezultat.

    Povezane publikacije