PHP: Polia v reťazci. Prevedenie riadkov do polí a späť

Prevod dát z jedného pohľadu na iný je populárny, často jediný mechanizmus na riešenie problému. Pole je jednoduchý prípad objektu. Riadok - prirodzené zobrazenie informácií na prenos, spracovanie alebo ukladanie. Skúsenosti a sémantika implementované v systéme PHP: polia, funkcie a syntaktické konštrukcie, ktoré umožňujú vytvárať optimálne riešenia pre spracovanie informácií vo forme, v akej sú prezentované.

Informácie: symboly, riadky a údaje

V "čistej" forme informácií - reťazec znakov, jazyka alebo sekvencie signálov. V programovaní sa objavujú riadky, polia a objekty - ide o varianty umelých reťazových štruktúr. Čísla sú tiež riadky, ale čísla, nie znaky.


Konvertovanie reťazca na pole PHP umožňuje mnoho rôznych spôsobov. Existujú dve špeciálne funkcie, ktoré to robia samostatne:
  • $ aArr = explode ('x', 'string');
  • $ aStr = implode ('y', $ aArr).
  • Prvá funkcia nájde charakter oddeľovača "x" a rozdelí ho na reťazec "string". Výsledné pole získa presne počet prvkov (riadkov) obsiahnutých medzi znakmi "x". Oddeľovač symbolov nemusí byť nevyhnutne klasický:
  • čiarka;
  • bod;
  • bodkočiarka.
  • Môžete rozdeliť riadok podreťazcom alebo špeciálnou kombináciou znakov. Dĺžka reťazca je strlen () v PHP, dĺžka poľa je count (). V prvom prípade sa vezme do úvahy počet znakov, v druhom prípade počet prvkov. Keďže separačný znak nie je súčasťou prvkov poľa, hodnota count ()sa bude rovnať počtu rozdeľovačov v prepočítanom riadku mínus jeden.


    Reverznou transformáciou sa polia PHP konvertujú na reťazec so znakom oddeľovača (môžu byť prázdne) a všetky dáta (čísla a logické výrazy) sa zlúčia do jedného riadku. Prvok poľa môže byť iné pole, avšak v tomto prípade programátor musí pracovať zvlášť. Funkcia implode () je ďaleko od rekurzie.
    V tomto príklade nie je problém konvertovať PHP pole do riadku, kým v ich prvkoch nie je iné pole. Pri konverzii asociačných prvkov dôjde k strate kľúčových informácií. Najmä prvky "odtoku" a "broskyňa" budú zbavené kľúčov.

    dát separátory a

    , by sa nemali považovať za oddelené bodky, čiarky, dvojbodky, atď. Toto je súkromný oddelenie dát udalostí od seba navzájom. Keď sa reťazec transformuje do PHP, multidimenzionálne pole nebude fungovať a asociatívne indexy sa dostanú z ničoho. Pri analýze riadku oddeľovačom je riadok vždy vyvedený. Ale to nie je dôvod, prečo by sme sa mali zamerať na to, čo bolo dosiahnuté. Po zložení jednej čiary do kompozitných prvkov môžete ísť ďalej.
    Napríklad, bol bod v ňom niekoľko návrhov (oddeľovača "" - point), veta z niekoľkých vetách (separátory "" - čiarka "" - bodkočiarkou "" - The Point), výraz je slová (oddeľovač "" - medzerník "," - čiarka ";" - bodkočiarka "-" bodka "). S takou demontáž v PHP viacrozmerné pole sa ľahko, ale algoritmus je veľmi škaredý: počet zvyšuje separátora a nedostatok komunikácie medzi susednými bodmi poskytujú zaručená zdvojovanievety, frázy a slová.
    Demontáž reťazca, môžete okamžite previesť sekvencie číslic a logické hodnoty sú pravdivé a nepravdivé. Ale to najmä, kľúčové informácie sa stále neobjaví, pretože ako kľúč - to dáva zmysel, môže stroj vytvoriť len číselný index.

    Kompozitné oddeľovače

    Záver poľa PHP v reťazci sa často používa na oficiálne účely. Konfiguračný súbor je tradične napísaný v poradí a názov hodnoty oddeľuje jeden znak alebo dvojbodku. S týmto riešením je výstup poľa v PHP vykonávaný v súbore, ktorý automaticky rozdeľuje riadky a automaticky vracia asociačné pole so spätným rozpoznaním. Pri čítaní súboru programátor obdrží reťazec a rozdelenie jednotlivých riadkov na "=" alebo ":" prijme meno a jeho hodnotu. Veľmi populárna manipulácia, hoci modernejšie používanie značkovania XML z jednoduchého dôvodu, že okrem názvov a hodnôt môžete uložiť a obnoviť ďalšie údaje, napríklad atribúty premenných.
    V príklade s odsekmi (napríklad prirodzený text pre zostavenie slovníka alebo výsledok analýzy na vytvorenie vzorky údajov), nie je to konkrétny postup na konverziu reťazca na pole, ale integrované riešenie pre všetky odseky alebo bloky informácií. Takáto úloha sa zvyčajne vyžaduje opačné rozhodnutie, keď sa vytvorí "sada" údajov, ktoré sa budú musieť použiť na vyhľadávanie informácií alebo zálohovanie linky.

    Demontáž a montáž reťazcov - overenie údajov

    V PHP sú pole v rade presné riešenie. Ak by zdrojové informácie mohli mať syntaktické chyby, je nadbytočnémedzery, nesprávne znaky, potom sa nebudú demontovať. Výsledok transformácie zdrojových informácií nepsanými programovacími zákonmi je striktne formálny a výsledok bude jasne usporiadaný na regáloch.
    Reverzný postup vám umožní vytvoriť správnu štartovaciu čiaru. Ak porovnáme objem pôvodných informácií a výsledok inverznej transformácie, môžeme vyvodiť závery o tom, kde došlo k chybám alebo došlo k strate dát. V PHP môže dĺžka poľa v kontexte počiatočnej dĺžky reťazca umožniť vyvodenie potrebných záverov.

    čas, dátum a štítok udalosti

    vo vývoji kritických projektov pri vytváraní riadiacich objekty, ako sú čas, alebo akcie línia - to je jeden pohľad dát a pole - je ďalší. V aplikácii sú však ekvivalentné. Keď je potrebné vykonať matematické alebo logické výpočty, programátor manipuluje pole, keď je potrebné uložiť dáta, používa možnosť reťazca.
    Indexy prístupu do polí databázy sú skutočnou praxou spoločných akcií MySQL a PHP, polia v reťazci = jeden index v riadkoch niekoľkých databázových tabuliek. Ak databáza obsahuje desiatky tabuliek, a každý riadok tabuľky možno zvoliť kombináciou mien (hodnoty) v kombinácii so tvoriaci pole prístupových liniek potom možno pristupovať pomocou indexu tvorby algoritmus namiesto prehľadávanie databázy ,

    previesť na pole na algoritme reťazec môže byť považované za požadovaný index, zatiaľ čo obsah poľa je tvorený úplne spustenýiné udalosti alebo akcie používateľa.

    Zlúčenie polí

    Funkcie PHP umožňujú ľubovoľne manipulovať so súbormi. Existuje však vždy úloha vytvoriť vzorku unikátnych údajov alebo nájsť dáta v poli. Prvý problém je vyriešený iteračným spôsobom: pole (alebo viacero polí) sa presúva a vytvára sa reťazec jedinečných hodnôt - zrejmým riešením, ale nie najúčinnejším. Hľadanie údajov v poli je tiež slučka, a ak existuje veľa prvkov, potom bude slučka dostatočne dlhá a trvá znateľný čas. Môžete poslať pole do reťazca a pomocou funkcie strpos () nájsť požadovaný prvok, ale to spôsobí problém s detekciou falošného záznamu. Napríklad sa hľadalo slovo "zásobník", ale našlo sa jeho vstup do slova "kladivo". Takéto chyby sa môžete zbaviť, ak sú všetky prvky poľa zlúčené do riadku špeciálnym oddeľovačom, ktorý zabráni neistote. Ak bola riadka "[zásobník]" a "[kladivo]", potom nebudú žiadne problémy s vyhľadávaním. Neexistuje však žiadna záruka, že na skutočných dátových objemoch funguje funkcia strposp () rýchlejšie ako slučka, chytí prvky poľa.

    Riešenie objektov: polia + riadky

    Najlepšie riešenie je, keď pole alebo reťazec nezávisle vykonáva správne kroky. Ak to trochu komplikuje pole a zjednodušuje riadky, pretože prvý - to je súkromný prípad objektu, a druhý - to je tradičná serializácia, potom všetci sa budú zaoberať ich podnikaním.
    V pravý čas je objekt pole a keď sa vyžaduje reťazec, bude to reťazec. Nemusí mať nutne predmet a pole a reťazec súčasne. Môžete vytvoriť jedinečnýrýchla štruktúra údajov. A logika "pole" a "reťazec" vykonávať metódy objektu. Objektovo orientovaný prístup zjednodušuje riešenie mnohých úloh spracovania informácií o reťazcoch, umožňuje zamerať sa na polia, cykly a funkciu spracovania reťazcov samotného PHP.

    Dynamika významu

    Obe riadky a súbory - to je skutočný zmysel pre realitu, rozsah pôsobnosti, úlohy. Neexistuje žiadna takáto úloha - posielať v PHP poliach v rade. Ale je tu úloha získať odsek (vety, frázy, slová, čísla) na základe výsledkov získaných v predchádzajúcom algoritme.
    Predchádzajúci algoritmus nesie význam a presný výraz tohto obsahu je obsiahnutý v poli. Ďalšou etapou algoritmu je transformácia významu na inú prezentáciu vhodnú na ďalšie spracovanie alebo aplikáciu. Vzhľadom na algoritmus, ako dynamiku významu a transformácie dát, je možné vytvoriť spoľahlivé, pochopiteľné a efektívne transformácie.

    Súvisiace publikácie