PHP array: najprej odstranite element, zadnji, po vrednosti

PHP polja se uporabljajo povsod. Dodajanje in sprememba vrednot praviloma ne povzroča težav. Odstranjevanje elementov nizov je posebna operacija. Element lahko preprosto izbrišete, lahko pa ga izbrišete in uporabite. Ta odtenek ponuja velike priložnosti.

PHP nizi

PHP je sodoben programski jezik, funkcionalnost pri delu na nizih se izvaja na visoki ravni. Programer ima možnost uporabe navadnih in asociativnih nizov, da oblikuje večdimenzionalne podatkovne strukture, da ima kot kateri koli element matrike katerekoli vrste.


Obstaja razvit sklop funkcij za delo z nizi, posebnimi sintaktičnimi konstrukcijami. Možno je obiti matriko z lastnim algoritmom in dodeliti lastne obdelovalne funkcije.

Primeri ustvarjanja in uporabe polja

Funkcija scPrint je pomožna. Vrne matriko v niz znakov, da prikaže rezultate. Matrika $ aFruits je ustvarjena na običajen način: vrednosti so navedene, indeksi se samodejno dodelijo iz nič. Zadnja vejica ni pomembna in ne ustvari novega praznega elementa. Matrika $ aData je prazna in v njej je vnesena vrednost. Tri so avtomati, dva pa sta asociativna indeksa, ki ne vplivata na skupno številčenje vrednosti. Elementi „slivice“ in „breskve“ imata „nove“ in „sveže“ indekse. Niz $ aInfo je večdimenzionalen in asociativen.
Kako odstraniti element v nizu PHP, prikazuje tri operacijeizbriši Prva operacija odstrani drugi element iz polja $ aFruits, njegov indeks pa je enak 1. Upoštevati je treba, da se poznejši indeksi ne premikajo, kar pomeni, da je pri cikličnih operacijah s takšnim nizom potrebno predvideti obstoj elementa.


Druga operacija odstrani zadnji in prvi element v nizu $ aData, kar potrjuje pomanjkanje vpliva na odstranitev indeksov in zmožnost hkratnega brisanja več elementov. Tretjič - odstrani matriko v nizu in element v matriki, ki je vključen v drugo polje.

Normalno odstranjevanje elementa - unset

Funkcija unset izbriše. Ni važno kaj. To je lahko samo spremenljivka ali element matrike. Predpostavlja se, da je unset () jezikovni operater in ne funkcija. Ni važno, ta operater ne vrne, ampak kaj se mu posreduje kot parametre, ki jih "uniči". Spremenljivka ali polje izgine, kot da ne.
PHP lahko odstrani prazne elemente matrike v PHP-ju drugače, v bistvu, da razmisli o praznem elementu - odvisno je od programerja. Vendar pa v operaterju unset () za to ni preveč pametno uporabiti več parametrov. Bolj praktično je združevanje operacij v skupinske funkcije. Sodobni računalniki delujejo zelo hitro in PHP zelo kmalu. Vendar to ni razlog za ustvarjanje in obdelavo ton informacij z okornimi algoritmi, temveč je objektivna osnova za pristop k procesu odstranjevanja elementov matrike na progresiven način.

Brisanje elementov z majhnimi metodami

V PHP-u lahko odstranite prazne elemente matrike, tako da matriko obrnete v niz in jo obrnete nazaj. Toda ta primer je primeren le zaresnično prazne postavke, manjkajoči indeksi ali ponovno indeksiranje polja.
Pojem praznega elementa je odvisen od naloge. Pogosto je prazen obstoječi element matrike, ki vsebuje določene informacije. Na primer, šteje se niz obiskovalcev. Element matrike vsebuje:
  • čas prihoda obiskovalca;
  • trenutni način delovanja;
  • aktivna stran;
  • zadnji ukrep.
  • Če je razlika med časom prihoda in časom zadnjega več kot 1 minuto (ali drugo vrednost), lahko predpostavimo, da je stranka zapustila mesto. Evidence takih strank se lahko izbrišejo, če je naloga spremljanja seznama aktivnih obiskovalcev in ne uporabe naprednejših metod z uporabo javascripta. Vendar pa je "niz" obdelava je dobra. V PHP-ju je na primer mogoče izbrisati podvojene elemente matrike:
    Hiter in dostopen način. Neobvezno uporabite znake '[' in ']' za označevanje vsakega elementa, vendar ne pozabite, da preoblikovanje matrike v niz zahteva, da je izpolnjena edinstvenost vsakega elementa. Simboli za uokvirjanje morajo biti izbrani na podlagi znakov, ki so dovoljeni v elementu. Neveljavno pravilo: Vsaka postavka v vrstici v vrstici je edinstvena in ima svoje mesto (drugače ničesar ne obrne nazaj). Ta metoda je bolj priročna, če je naloga v PHP-ju izbrisati element matrike po vrednosti. Lahko uporabite array_flip in spremenite vrednosti in ključe na mestih, nato pa naredite klasično unset. Lahko uporabite funkcijo array_search in poiščete želeno vrednost ključaodstranite Toda nižja različica rešitve je jasnejša in lažja.

    O dimenzijah in velikostih

    PHP nikakor ne omejuje razvijalca: niti glede števila meritev niti glede velikosti elementov. To ni smiselno občudovati. Vsak element mora imeti najmanjšo možno dolžino, število meritev pa mora biti eno. Če je število dimenzij matrike več kot trije dober razlog za pregled rešitve. Če ima element matrike več kot 4000-8000 znakov, bi morali obstajati dvomi o razumnosti vgrajene podatkovne slike.
    Ta ideja ne izhaja iz konteksta funkcije niza PHP: izbrišite element, dodajte predmet druge vrste, spremenite nekaj v nekaj povsem drugega. Preprostost je ključ do uspeha ne le v življenju, temveč tudi v algoritmu. Program mora delovati in ga ne preseneča njegova razsežnost, velikost in obseg idej. Pomemben rezultat, ne velika ideja.

    Ideja PHP v PHP

    Ker sodobni programski jezik PHP ne gre mimo rekurzije in stackov. V bistvu ni pomembno, kaj programer pri uporabi funkcije array_pop () v PHP-ju pomeni: izbrišite zadnji element matrike ali pa ga preprosto prenesete v spremenljivko. Vendar ne pozabite, da je v tem kontekstu funkcija array_pop iz push & amp; pop, to je orodje za stack, ne brisanje.
    Tukaj je običajno reči, da se ne "izbriše", temveč "izvleči". Semantika je bistveno drugačna. Funkcija array_shift () v PHP-ju: odstranjevanje prvega elementa matrike ali njegovo ekstrahiranje - ima drugačen odtenek. Tudi tukaj je element izvlečen v zunanjo spremenljivko inne bo v matriki, vendar se indeksi premaknejo. Pri pridobivanju prvega elementa iz matrike sledijo premiku vsi elementi, ki sledijo, vendar se spremenijo le številčni indeksi, majhni pa ostanejo nespremenjeni.

    Izbrisati ali spremeniti: zgodovino operacij

    Spremenljivka - to je zelo stara preteklost, polje - to je bilo že zdavnaj, predmet - je bilo včeraj. O objektno usmerjenem programiranju do zdaj govorimo, vendar ne uporabljamo ničesar v polni moči. Redki primer, ko so površinske rešitve postale predmet zaseženih odločitev in "usposobljene" z maso "telesa" sistemov za upravljanje mesta (CMS).
    Objektivno pravilo: ne v številu kode, temveč v njegovi kakovosti! Vendar noben sodoben CMS še ni poslušal tega pravila. Njeni avtorji verjamejo, da delajo pravo stvar in vedo, kaj počnejo. Rezultat (značilnost): nobeden od sodobnih CMS ne odlikuje dostojna "številka" (gladkost in enostavnost oblikovanja), vsi imajo neizmerno popolnost kode, vsaka zahteva spoštovanje samega sebe:
  • visoko usposobljen programer;
  • zahteva vgradnjo;
  • določa zahteve za gostovanje;
  • povzroča težave pri prehodu na drugo gostovanje;
  • dejansko ovira delo in upravljanje.
  • Programerji so že dolgo časa šli na koncept povrnitve, moderno programiranje pa ne razmišlja o ustvarjanju programske opreme brez dveh funkcij:
  • undo;
  • ponovi.
  • Ne gre samo za osebo, da bi naredila napako, ampak v vsakem primeru bi morala biti odpoved. V sodobnih sredstvih internetnega programiranja do danes ta trenutek ni samo pomemben, temveč tudiuporablja zelo omejeno. Operacije PHP v polju: izbrišite element, spremenite vrsto ali dodajte nekaj novega - razumljivo. Toda prej so obstajale spremenljivke, nato nizi, nato objekti. Ali ni priložnost, da razmislimo o tem, da se matrika - sčasoma spreminja? Niz je podatkovna struktura v daljšem časovnem obdobju. Noben jezik še vedno ne obravnava časa kot skladenjski faktor. O semantiki ni mogoče niti govoriti: od antičnih časov do sedaj programerji in uporabniki razumejo samo datoteke in mape. Največji razvoj je bil, na primer, v PHP, imenski prostor je običajno viden v strukturi map in datotek. V tem kontekstu je prepoved PHP v matriki: izbrisati element, spremeniti ali dodati - zahteva, da programer sprejme dodatne ukrepe. Lahko pustite vse, kar je, in izkaže se, kot vedno. Na podatke lahko upoštevate vsako transakcijo in jo v celoti zabeležite, ustvarite in shranite zgodovino operacij.
    To bo popolnoma drugačen nivo dela in bistveno boljši rezultat kakovosti.

    Sorodne publikacije