Funksioni nga vargu në varg. Programim efikas PHP: Vargje në vargje

JavaScript është bllokuar në shfletuesin tuaj. Ju lutemi aktivizoni JavaScript për funksionimin e sajtit!

shpërthejnë

(PHP 3, PHP 4, PHP 5)

shpërthejnë- Lidh elementet e grupit në një varg (konverton vargun në varg)

Përshkrim

varg shpërthejnë(ngjitës me fije, copa vargu)

Kthen vargun e marrë nga bashkimi i paraqitjeve të vargut të elementeve të grupit të pjesëve, duke futur një varg ngjitës midis elementeve ngjitur.

Shembulli 1: Shembull përdorimi shpërthej ()

Koment: Për arsye historike, funksionet shpërthej () ju mund të kaloni argumente në çdo mënyrë, por për unifikimin me funksionin shpërthejnë () duhet të përdoret rendi i argumentuar i dokumentuar.

Koment: Që nga versioni 4.3.0, argumenti i funksionit ngjitës shpërthej ()është opsionale dhe parazgjedhur për vargun bosh (""). Për pajtueshmërinë e prapambetur, rekomandohet të kaloni gjithmonë të dy argumentet.

Koment: Ky funksion është i sigurt për të përpunuar të dhënat në formë binare.

Ky funksion kombinon vlerat e elementeve të grupit në një varg. Për të kombinuar çelësat e elementeve të grupit, përdorni kodin e mëposhtëm:

php implode për vargjet e mbivendosur

Nëse kaloni një grup shumëdimensional për të shpërthyer, do të merrni një gabim "Konvertimi i vargut në varg". Për të shmangur këtë gabim, përdorni ekuivalentin e mëposhtëm me funksionin implode:

Funksioni multi_implode($glue, $array) ($_array=array(); foreach($array as $val) $_array = is_array($val)? multi_implode($glue, $val) : $val; ktheje implode($ zam, $_array);

Shihni gjithashtu përshkrimet e funksionit

Nëse keni nevojë të konvertoni një grup PHP në një varg, ka disa mjete për këtë. Përdorimi i një mjeti të veçantë varet nga qëllimet tuaja.

1. Funksioni Implode().

Me ndihmën e tij, ju mund të "ngjisni" elementë të grupit në një varg, përmes çdo ndarësi. Lexo më shumë: shpërtheje
Shembull:

Echo implode("|", array(1, 2, 3)); // do të prodhojë rreshtin: 1|2|3

Ky funksion ka një antagonist, explode(), i cili, përkundrazi, ndan vargun në delimiter në elementë të grupit. Lexo më shumë: shpërthejnë

2. Funksioni Serialize().

Detyra kryesore e funksionit është të transformojë një ndryshore (në rastin tonë, një grup) në një gjendje të përshtatshme për ruajtje.
Përdoret për të ruajtur një grup në një varg dhe më pas për ta kthyer atë në një grup. Mund ta ruani grupin në një skedar ose bazë të dhënash dhe më pas ta rivendosni herën tjetër që të ekzekutoni skriptin.
Lexo më shumë: serialize

$array = array("1" =>; "elem 1", "2"=> "elem 2", "3" => "elem 3"); $string = serialize($array); echo $string; // do të prodhojë rreshtin: a:3:(i:1;s:6:"elem 1";i:2;s:6:"elem 2";i:3;s:7:"elem 3" ;)

Pastaj nga kjo linjë, mund të merrni përsëri grupin:

$array = unserialize($string);

3. funksioni json_encode().

Kthen një paraqitje JSON të të dhënave. Mund të lexoni se çfarë është.
Në rastin tonë, ky funksion i ngjan serializimit, por JSON përdoret kryesisht për transferimin e të dhënave. Ju do të duhet të përdorni këtë format për të shkëmbyer të dhëna me javascript në pjesën e përparme. Më shumë detaje: json_encode

$array = grup (1 => "një", 2 => "dy",); $json = json_encode ($array); jehonë $json; // ("1":"një","2":"dy")

Funksioni i kthimit të thirrjes json_decode() do të kthejë një objekt të tipit stdClass nëse parametri i dytë i funksionit është false. Ose do të kthejë një grup shoqërues nëse "true" kalohet si parametër i dytë. Detajet këtu.

Konvertimi i të dhënave nga një paraqitje në tjetrën është një mekanizëm popullor, shpesh i vetmi, për zgjidhjen e një problemi. Një grup është një rast i thjeshtë i një objekti. Një varg është një paraqitje e natyrshme e informacionit për transmetim, përpunim ose ruajtje.

Përvoja dhe semantika e zbatuar në PHP: vargjet, funksionet dhe strukturat sintaksore bëjnë të mundur krijimin e zgjidhjeve optimale për përpunimin e informacionit siç paraqitet.

Informacion: karaktere, vargje dhe të dhëna

Në formën e tij "të pastër", informacioni është një varg karakteresh, fjalimi ose një sekuencë sinjalesh. Vargjet, vargjet dhe objektet shfaqen në programim - këto janë variante të konstruksioneve artificiale të vargjeve. Numrat janë gjithashtu vargje, por numra, jo simbole.

PHP ju lejon të konvertoni një varg në një grup në mënyra të ndryshme. Ka dy funksione të veçanta që e bëjnë këtë "vetë":

  • $aArr = shpërthejë ("x", "string");
  • $aStr = implode("y", $aArr).

Funksioni i parë gjen karakterin ndarës "x" dhe ndan vargun "string" duke përdorur atë. Vargu që rezulton përmban saktësisht numrin e elementeve (linjave) që përmbahen midis karaktereve "x". Simboli ndarës mund të mos jetë domosdoshmërisht ai klasik:

  • presje;
  • pikë;
  • pikëpresje.

Ju mund të ndani një varg me nënvarg ose me një kombinim të veçantë karakteresh.

Gjatësia e vargut është strlen() në PHP, gjatësia e vargut është count(). Në rastin e parë, numri i karaktereve llogaritet, në rastin e dytë, numri i elementeve. Meqenëse karakteri delimiter nuk përfshihet në elementet e grupit, vlera e count() do të jetë e barabartë me numrin e delimituesve në vargun e konvertuar minus një.

Në transformimin e kundërt të PHP, vargjet në varg konvertohen me një karakter ndarës (mund të jenë bosh), dhe të gjitha të dhënat (numrat dhe shprehjet Boolean) bashkohen në një varg. Një element i një grupi mund të jetë një grup tjetër, por programuesi duhet ta trajtojë këtë rast në mënyrë specifike. Funksioni implode() është larg nga rekurziv.

Në këtë shembull, nuk ka asnjë problem me konvertimin e vargjeve PHP në një varg për sa kohë që nuk ka asnjë grup tjetër midis elementeve të tyre. Kur konvertohen elementët shoqërues, informacioni kryesor humbet. Në veçanti, elementëve "kumbullë" dhe "pjeshkë" do t'u hiqen çelësat.

Kufizuesit dhe çelësat e të dhënave

Mos i konsideroni pikat, presjet, dy pikat, etj. si ndarës. Ky është një rast i veçantë i ndarjes së të dhënave nga njëra-tjetra. Kur transformoni një varg në PHP, një grup shumëdimensional nuk do të funksionojë dhe indekset shoqëruese nuk do të kenë nga të vijnë.

Analizimi i një vargu me kufizues gjithmonë prodhon vargje. Por kjo nuk është një arsye për t'u ndalur me kaq. Pasi të keni analizuar një rresht në elementët përbërës të tij, mund të vazhdoni.

Për shembull, kishte një paragraf me disa fjali (ndarëse "." - pikë), disa fraza në një fjali (ndarëse "," - presje, ";" - pikëpresje dhe "." - pikë), një frazë që përmban fjalë ( kufizues " " - hapësirë, "," - presje, ";" - pikëpresje dhe "."

Me këtë çmontim në PHP, mund të merret lehtësisht një grup shumëdimensional, por algoritmi do të jetë shumë i shëmtuar: numri i ndarësve rritet dhe mungesa e lidhjes midis paragrafëve ngjitur është e garantuar për të siguruar dyfishimin e fjalive, frazave dhe fjalëve.

Duke analizuar vargjet, mund të shndërroni menjëherë sekuencat e shifrave në numra dhe vlerat logjike në të vërteta dhe të rreme. Por kjo është në veçanti, informacioni kryesor ende nuk do të shfaqet, sepse çelësi është kuptimi, vetëm një indeks numerik mund të krijohet automatikisht.

Ndarëse komplekse

Printimi i një grupi PHP në një varg përdoret shpesh për qëllime të dobishme. Një skedar konfigurimi shkruhet tradicionalisht rresht pas rreshti, me një simbol të barabartë ose një dy pika që ndan emrin nga vlera.

Me këtë zgjidhje, dalja e një grupi në PHP bëhet në një skedar, automatikisht fitohet ndarja e linjës dhe me njohjen e kundërt, vargjet asociative fitohen lehtësisht.

Duke lexuar skedarin, programuesi merr rreshtat dhe duke thyer çdo rresht me "=" ose ":", ai merr emrin dhe vlerën e tij. Një manipulim shumë i popullarizuar, megjithëse është më moderne të përdoret shënimi XML mbi bazën e thjeshtë që përveç emrave dhe vlerave, të dhëna shtesë mund të ruhen dhe restaurohen, për shembull, atributet e ndryshueshme.

Në shembullin me paragrafë (për shembull, teksti natyror për të ndërtuar një fjalor ose rezultati i analizimit për të krijuar një mostër të dhënash), ajo që është e rëndësishme nuk është procedura specifike për konvertimin e një vargu në një grup, por një zgjidhje gjithëpërfshirëse për të gjithë paragrafët. ose blloqe informacioni.

Në mënyrë tipike, një detyrë e tillë do të kërkojë një zgjidhje të kundërt, kur "bashkësia" e gjeneruar e të dhënave do të duhet të përdoret për të kërkuar informacion në të ose për ta mbledhur atë përsëri në një varg.

Çmontimi dhe ribashkimi i vargjeve - vërtetimi i të dhënave

Në PHP: vargjet në varg është zgjidhja e saktë. Nëse informacioni burimor mund të ketë gabime sintaksore, hapësira shtesë ose simbole të pasakta, atëherë ato nuk do të jenë aty gjatë analizimit. Rezultati i transformimit të informacionit fillestar sipas ligjeve të pashkruara të programimit kryhet rreptësisht zyrtarisht, dhe rezultati do të vendoset qartë në raftet.

Procedura e kundërt do të prodhojë vargun e saktë të burimit. Nëse krahasoni sasinë e informacionit burimor dhe rezultatin e transformimit të kundërt, mund të nxirrni përfundime se ku janë bërë gabime ose ka ndodhur humbja e të dhënave. Në PHP, gjatësia e një vargu në kontekstin e gjatësisë origjinale të vargut mund të na lejojë të nxjerrim përfundimet e nevojshme.

Koha, data dhe etiketat e ngjarjeve

Në zhvillimin e projekteve kritike, kur krijohen objekte kontrolli, për shembull, koha ose ngjarjet, një rresht është një paraqitje e të dhënave dhe një grup është një tjetër. Por në aplikim ato janë ekuivalente.

Kur është e nevojshme të kryhen llogaritjet matematikore ose logjike, programuesi manipulon grupin kur është e nevojshme të ruhen të dhënat, ai përdor versionin e vargut;

Qasja në indekset në fushat e bazës së të dhënave - një praktikë reale e veprimit të përbashkët të MySQL dhe PHP, vargje në një rresht = një indeks në rreshtat e disa tabelave të bazës së të dhënave. Nëse baza e të dhënave përmban një duzinë tabelash, dhe në secilën tabelë rreshtat mund të zgjidhen nga një kombinim emrash (vlerash) në një kombinim të caktuar, atëherë pasi të keni krijuar vargje të aksesit të rreshtave, më pas mund të keni akses në to duke përdorur një algoritëm të formimit të indeksit, dhe jo duke kërkuar në bazën e të dhënave.

Shndërrimi i një grupi në një varg mund të konsiderohet si një algoritëm për formimin e indeksit të dëshiruar, ndërsa përmbajtja e grupit formohet nën kontrollin e ngjarjeve ose veprimeve krejtësisht të ndryshme të përdoruesit.

Bashkimi i vargjeve

Funksionet PHP ju lejojnë të manipuloni lirshëm vargje. Por gjithmonë lindin probleme për të zgjedhur të dhëna unike ose për të gjetur të dhëna në një grup.

Problemi i parë zgjidhet në mënyrë të përsëritur: përsëritet një grup (ose disa vargje) dhe formohet një varg vlerash unike - një zgjidhje e qartë, por jo më efektive.

Gjetja e të dhënave në një grup është gjithashtu një cikël, dhe nëse ka shumë elementë, atëherë cikli do të jetë mjaft i gjatë dhe do të marrë një kohë të dukshme. Është e mundur të dërgohet një grup në një varg dhe të përdoret funksioni strpos() për të gjetur një ndodhi të elementit të dëshiruar, por kjo do të sjellë problemin e zbulimit të një ndodhie të gabuar.

Për shembull, fjala "tabaka" u kërkua dhe shfaqja e saj u gjet në fjalën "çekiç". Ju mund të shpëtoni nga gabime të tilla nëse bashkoni të gjithë elementët e grupit në një varg duke përdorur një ndarës të veçantë, i cili do të shmangë paqartësinë.

Nëse rreshti përmban "[tabak]" dhe "[çekiç]", atëherë nuk do të ketë probleme me kërkimin.

Por nuk ka asnjë garanci që, në sasi reale të dhënash, funksioni strpos() do të funksionojë më shpejt se një cikli që përsëritet mbi elementët e grupit.

Zgjidhja më e mirë është që grupi ose vargu të bëjë gjënë e duhur vetë. Nëse i ndërlikojmë disi vargjet dhe thjeshtojmë vargjet, sepse të parët janë një rast i veçantë i një objekti, dhe të dytët janë serializimi tradicional, atëherë secili do të bëjë të vetën.

Në kohën e duhur, objekti është një varg dhe kur nevojitet një varg, ai do të jetë një varg. Në këtë rast, nuk është absolutisht e nevojshme që të ketë një varg dhe një varg në objekt në të njëjtën kohë. Ju mund të ndërtoni një strukturë unike të të dhënave me akses të shpejtë. Dhe vendosni logjikën "array" dhe "string" në metodat e objektit.

Qasja e orientuar nga objekti thjeshton zgjidhjen e shumë problemeve të përpunimit të informacionit të vargut, ju lejon të mos përqendroheni në vargje, sythe dhe funksionin e përpunimit të vargut të vetë PHP.

Të dy vargjet dhe vargjet janë kuptimi i vërtetë i realitetit, aplikimit, detyrës. Nuk ka një detyrë të tillë - dërgimi i vargjeve në vargje në PHP. Por ka një detyrë për të marrë një paragraf (fjali, frazë, fjalë, numër...) bazuar në rezultatet e marra në algoritmin e mëparshëm.

Algoritmi i mëparshëm mbart një kuptim, dhe shprehja e saktë e këtij kuptimi gjendet në grup. Faza tjetër e algoritmit është shndërrimi i kuptimit në një paraqitje tjetër, e përshtatshme për përpunim ose aplikim të mëtejshëm.

Duke e parë algoritmin si dinamikë të kuptimit dhe transformimit të të dhënave, është e mundur të formohen transformime të besueshme, të kuptueshme dhe efektive.

PHP, si gjuhë moderne programuese, ofron mundësinë e përpunimit të të dhënave, lloji i të cilave mund të përcaktohet në momentin e përdorimit. Lloji i të dhënave mund të ndryshojë gjatë ekzekutimit të programit.

Vargjet e karaktereve janë i vetmi lloj i të dhënave tek i cili të dhënat e llojeve të tjera hidhen natyrshëm, për arsyen e thjeshtë se çdo e dhënë e dhënë është gjithmonë një sekuencë karakteresh.

Vargjet në PHP

Përveç variablave të rregullt, PHP i ofron programuesit sintaksë dhe funksione për të punuar me vargje. Përveç vargjeve të rregullta që ofrojnë akses në elementët e tyre me çelës (një numër nga 0 në numrin e elementeve), mund të përdorni vargje shoqëruese. Në këtë të fundit, qasja mund të kryhet si nga një indeks numerik (i caktuar automatikisht) ashtu edhe nga një çelës i specifikuar nga programuesi.

PHP ofron mundësinë për të shkëmbyer indekse dhe vlera, gjë që ka kuptim pasi një çelës nuk është zyrtarisht më i rreptë se një vlerë, por duhet ta përdorni me kujdes. Për një kohë të gjatë, traditat e programimit kanë qenë tërheqëse për shkronjat e alfabetit latin. Cirilika, si rregull i përgjithshëm, sjell me vete problemin e kodimeve. Nuk duhet të abuzoni me aftësitë e gjuhës kur keni nevojë për kod praktik dhe të sigurt.

Opsioni optimal i indeksit është një frazë kuptimplotë në anglisht, mundësisht pa hapësira. Është mirë që sintaksa PHP deklaron "liri" për çelësat, por është më mirë t'i besoni përvojës tuaj dhe të përqendroheni në kodin e sigurt.

Karakteristika më interesante dhe praktike e zgjidhjes së PHP "arrays to string" është mundësia e konvertimit të ndërsjellë ekuivalent.

PHP: Vargje dhe vargje

Funksioni "arrays to string" PHP: $cLine = implode("/ ", $aStyle) prodhon një varg karakteresh të të gjithë elementëve të grupit $aStyle, të ndarë nga karakteri "/". Nëse specifikoni " ", atëherë të gjithë elementët do të bashkohen në një sekuencë të vazhdueshme karakteresh.

Funksioni invers $aStyle = explode("/", $cLine) krijon një grup të të gjitha linjave që ndahen nga karakteri "/".

Kur përdorni funksionin explode(), është e këshillueshme, por jo e nevojshme, të kontrolloni praninë e karakterit të dëshiruar të kufirit në vargun burimor.

Ju gjithashtu mund të nxirrni vargje në një varg në PHP duke përdorur mjete më njerëzore dhe të kontrolluara, për shembull, në ciklin for, while, foreach, duke shtuar vlerat e elementeve të vargut në një variabël vargu duke përdorur operatorin e caktimit: ".=". ose operatori ".", i cili lejon në procesin e formimit të vargjeve të konvertimit (përpunoni çdo element).

PHP: Printoni një varg në varg nëpërmjet objekteve

Një objekt është një koleksion të dhënash dhe kodi. Asgjë nuk ju pengon të vendosni, për shembull, dy funksione në kodin tuaj: shkruani dhe lexoni. Falë trashëgimisë dhe polimorfizmit, nëse keni një objekt rrethi, mund të keni variacionet e tij: blu, e kuqe dhe jeshile.

Secili do të shkruhet (lexohet) ndryshe, por saktësisht se si ekzekutohet zgjidhja e PHP "arrays to string" nuk do të ketë rëndësi. Në thelbin e tyre, objektet kanë një kuptim të caktuar, kanë struktura të ndryshme dhe metoda të ndryshme. Një shembull me dy funksione - të veçanta. Kur ndërtohet një mekanizëm i tillë në PHP, vargjet do të vendosen në një varg ndryshe në çdo rast specifik.

Kjo hap shumë mundësi. Një objekt ka dy vargje, një tjetër ka njëzet, dhe paraardhësi i përbashkët (zakonisht i pari është abstrakt) nuk ka asgjë fare. Duke përdorur metodat e tyre të paraardhësve të përbashkët, nuk keni pse të shqetësoheni për diçka që nuk shkruhet, lexohet, përpunohet ose shfaqet.

Falë trashëgimisë, pavarësisht se çfarë forme përdoret kudo në program, ai mund të përfaqësohet si një varg dhe të kalojë përsëri në objektin e asaj forme të veçantë.

Përshëndetje, dje ne studiuam se si mund të ndani një varg dhe të merrni një grup prej tij. Sot ju sjell në vëmendje funksionin e kundërt, me ndihmën e të cilit mundemi konverto grupin në varg. Ky quhet implode funksion. Parimi i funksionimit të këtij funksioni është i ngjashëm me atë të mëparshëm, por ne do ta shikojmë atë duke përdorur një shembull:

$array = grup ( "Emri im është Denis") ;
$string = shpërthen( " ", $array);
jehonë $string;
?>

Ne krijuam një grup me tre elementë, dhe duke përdorur shpërthejnë funksionet e ktheu në një varg. Ky funksion mund të marrë dy parametra. E para është opsionale dhe do të thotë se çfarë kufiri do të aplikohet midis elementeve të grupit. Nëse ky parametër nuk specifikohet, elementët e grupit do të ndahen me hapësirë ​​si parazgjedhje. Dhe parametri i dytë specifikon vetë grupin, i cili do të konvertohet në një varg. Këta janë të gjithë parametrat që mbështet funksioni që studiohet. Si rezultat i ekzekutimit të funksionit, do të merrni vargun (Emri im është Denis). Nëse do të kishim specifikuar një presje si ndarës, rezultati do të ishte (Emri im është Denis). Unë mendoj se nuk ka pasur probleme në mësimin e këtij funksioni dhe do të mund ta përdorni vetë kur krijimin e faqeve tuaja të internetit. Ky artikull përfundon siç mund ta shihni, ai ishte mjaft i vogël në vëllim, por shumë i rëndësishëm nga pikëpamja praktike. Shihemi së shpejti, fat të mirë në mësimin e gjuhëve të programimit!