PHP: Nizovi u nizu. Pretvorite retke u nizove i natrag

Pretvaranje podataka iz jednog u drugi pogled je popularan, često jedini mehanizam za rješavanje problema. Niz je jednostavan slučaj objekta. Line - prirodna zastupljenost informacija za prijenos, obradu ili pohranu. Iskustvo i semantika implementirani u PHP-u: nizovi, funkcije i sintaktički konstrukti koji vam omogućuju stvaranje optimalnih rješenja za obradu informacija u obliku u kojem je predstavljen.

Informacije: simboli, linije i podaci

U "čistom" obliku informacija - niz znakova, jezik ili slijed signala. U programiranju se pojavljuju linije, nizovi i objekti - to su varijante umjetnih nizova. Brojevi su i redovi, ali brojevi, a ne znakovi.


Pretvaranje niza u niz PHP-a omogućuje mnogo različitih načina. Postoje dvije posebne funkcije koje to rade samostalno:
  • $ aArr = explode ('x', 'string');
  • $ aStr = implode ('y', $ aArr).
  • Prva funkcija pronalazi znak razdjelnika 'x' i dijeli ga u niz 'string'. Rezultirajući niz dobiva točno broj elemenata (redaka) koji se nalaze između znakova "x". Razdjelnik simbola ne mora nužno biti klasičan:
  • zarez;
  • točka;
  • točka-zarez.
  • Red možete podijeliti s podnizom ili posebnom kombinacijom znakova. Duljina niza je strlen () u PHP-u, duljina niza je count (). U prvom slučaju razmatra se broj znakova, u drugom slučaju broj elemenata. Budući da znak za razdvajanje nije dio elemenata niza, vrijednost count ()će biti jednak broju razdjelnika u konvertiranoj liniji minus jedan.


    Obrnutim transformacijama, PHP polja pretvaraju se u niz znakova razdvajanja (mogu biti prazni), a svi podaci (brojevi i logički izrazi) spajaju se u jedan redak. Element niza može biti drugi niz, ali ovaj slučaj programer mora posebno izvesti. Funkcija implode () je daleko od rekurzije.
    U ovom primjeru, ne postoji problem pretvaranja PHP polja u red sve dok ne postoji drugi niz u njihovim elementima. Kod konverzije asocijativnih elemenata, ključne informacije se gube. Konkretno, elementi "drenaže" i "breskve" bit će lišeni njihovih ključeva.

    Razdjelnici podataka i tipke

    Nemojte pretpostavljati graničnike točke, zareza, dvotočke, itd. - Ovo je privatni slučaj razdvajanja podataka jedan od drugog. Kada se niz transformira u PHP-u, višedimenzionalni niz neće raditi, a asocijativni indeksi će se spustiti niotkuda. Prilikom raščlanjivanja linije po separatoru, linija je uvijek izlaz. Ali to nije razlog da se zadržimo na onome što je postignuto. Uzevši jednu liniju u složene elemente, možete ići dalje.
    Na primjer, postojao je paragraf, u njemu je bilo nekoliko rečenica (graničnik ". Je li točka"), u rečenici nekoliko izraza (razdjelnici, "- zarez,"; "- točka - zarez. - točka), riječi (graničnik "" - prostor, "," - zarez, ";" - točka - zarez. - - točka "). S takvim sortiranjem u PHP-u, višedimenzionalni niz će lako izaći, ali algoritam će biti vrlo ružan: broj separatora se povećava, a nedostatak komunikacije između susjednih stavaka jamči dupliranje.rečenice, fraze i riječi.
    Rastavljanje niza, možete odmah pretvoriti nizove znamenki, a logičke vrijednosti su istinite i lažne. Ali to, osobito, ključne informacije i dalje se neće pojaviti, jer kao ključ - ima smisla, stroj može stvoriti samo numerički indeks.

    Kompozitni razdjelnici

    Zaključak niza PHP-a u nizu često se koristi u službene svrhe. Konfiguracijska datoteka se tradicionalno piše po redu, a ime vrijednosti dijeli znak jedan ili dvotočku. S ovim rješenjem, izlazni niz u PHP-u se vrši u datoteci, automatski dijeleći linije i automatski vraćajući asocijativne nizove obrnutim prepoznavanjem. Kada čitate datoteku, programer prima niz i dijeli svaki redak na "=" ili ":", prima ime i njegovu vrijednost. Vrlo popularna manipulacija, iako modernije korištenje XML-označavanja iz jednostavnog razloga što osim imena i vrijednosti, možete spremiti i vratiti dodatne podatke, na primjer, atribute varijabli.
    U primjeru s paragrafima (na primjer, prirodnim tekstom za izradu rječnika ili rezultatom parsiranja za stvaranje uzorka podataka), to nije specifična procedura za pretvaranje niza u niz, već integrirano rješenje za sve stavke ili blokove informacija. Tipično, takav zadatak zahtijeva obrnutu odluku, kada će formirani "skup" podataka morati biti korišten za pretraživanje informacija ili za izradu sigurnosne kopije linije.

    Rastavljanje i sastavljanje nizova - provjera valjanosti podataka

    U PHP-u, nizovi u nizu su točno rješenje. Ako izvorne informacije mogu imati sintaksne pogreške, to je suvišnopraznine, netočni znakovi, onda neće biti rastavljeni. Rezultat transformacije izvornih informacija prema nepisanim zakonima o programiranju je strogo formalan, a rezultat će biti jasno uređen na policama.
    Reverzni postupak će vam omogućiti stvaranje ispravne početne linije. Ako usporedimo volumen izvorne informacije i rezultat inverzne transformacije, tada možemo izvući zaključke o tome gdje su pogreške napravljene ili je došlo do gubitka podataka. U PHP-u, duljina niza u kontekstu početne duljine niza može omogućiti iscrtavanje potrebnih zaključaka.

    Oznake vremena, datuma i događaja

    Pri izradi odgovornih projekata, pri stvaranju kontrolnih objekata, kao što su vrijeme ili događaji, niz je jedinstveni prikaz podataka, a niz je različit. Ali u primjeni su ekvivalentni. Kada je potrebno izvesti matematičke ili logičke izračune, programator manipulira nizom kada je potrebno spremiti podatke, koristi opciju niza.
    Indeksi pristupa poljima baze podataka prava su praksa zajedničkih akcija MySQL-a i PHP-a, polja u nizu = jedan indeks preko linija nekoliko tablica baze podataka. Ako baza podataka sadrži desetak tablica, te u svakoj tablici redaka može se odabrati kombinacijom imena (vrijednosti) u određenoj kombinaciji, nakon što se formiraju nizovi pristupa linija, možete im naknadno pristupiti pomoću algoritma indeksa, a ne iz pretraživanja u bazi ,

    Pretvorba niza u niz može se smatrati algoritmom za formiranje željenog indeksa, dok se sadržaj niza uopće formira pod kontrolom.drugim događajima ili radnjama korisnika.

    Spajanje nizova

    PHP funkcije omogućuju slobodno manipuliranje nizovima. Ali uvijek postoji zadaća izrade uzorka jedinstvenih podataka ili pronalaženje podataka u nizu. Prvi se problem rješava iterativnim putem: polje (ili nekoliko polja) se pomiče i formira se niz jedinstvenih vrijednosti - očigledno rješenje, ali ne i najučinkovitije. Pronalaženje podataka u nizu također je petlja, a ako postoji mnogo elemenata, petlja će biti dovoljno duga i trebat će primjetno vrijeme. Možete poslati niz u niz i koristiti funkciju strpos () da biste pronašli unos potrebnog elementa, ali to će uzrokovati problem otkrivanja lažnog unosa. Primjerice, pretražena je riječ "pladanj", ali je pronađen njezin unos u riječ "čekić". Takve se pogreške možete riješiti ako su svi elementi polja spojeni u liniju posebnim graničnikom koji će izbjeći nesigurnost. Ako je linija bila "[pladanj]" i "[čekić]", neće biti problema s pretraživanjem. No, nema jamstva da na stvarnim volumenima podataka, strposp funkcija () radi brže od petlje, zgrabi elemente polja.

    Rješenje objekta: polja + linije

    Najbolje rješenje je kada niz ili niz samostalno obavlja ispravnu radnju. Ako nešto komplicirati polja i pojednostaviti linije, jer je prvi - to je privatni slučaj objekta, a drugi - to je tradicionalna serialization, onda svatko će se baviti svojim poslovanjem.
    U pravo vrijeme, objekt je niz, a kad je potreban niz bit će niz. To ne mora nužno imati objekt i niz i niz u isto vrijeme. Možete izgraditi jedinstvenubrza struktura podataka. I logika "niz" i "string" za obavljanje metode objekta. Objektno-orijentirani pristup pojednostavljuje rješavanje mnogih zadataka obrade niza informacija, omogućuje vam da se ne fokusirate na nizove, cikluse i funkcije obrade nizova PHP-a.

    Dinamika značenja

    I redovi i nizovi - to je pravi osjećaj stvarnosti, opseg primjene, zadaci. Ne postoji takav zadatak - slanje u PHP nizove u nizu. Ali postoji zadatak da se dobije paragraf (rečenice, fraze, riječi, brojevi) na temelju rezultata dobivenih u prethodnom algoritmu.
    Prethodni algoritam ima značenje, a točan izraz tog sadržaja je sadržan u nizu. Sljedeća faza algoritma je transformacija značenja u drugu prezentaciju, prikladnu za daljnju obradu ili primjenu. S obzirom na algoritam, kao dinamiku značenja i transformacije podataka, moguće je formirati pouzdane, razumljive i učinkovite transformacije.

    Povezane publikacije