PHP: Políčka v řetězci. Převést řádky na pole a zpět

Převod dat z jednoho pohledu na druhý je populární, často jediný mechanismus pro řešení problému. Pole je jednoduchý případ objektu. Řádka - přirozené zobrazení informací pro přenos, zpracování nebo ukládání. Zkušenosti a sémantika implementovaná v PHP: pole, funkce a syntaktické konstrukce, které vám umožňují vytvářet optimální řešení pro zpracování informací ve formě, ve které jsou prezentovány.

Informace: symboly, čáry a data

V "čisté" formě informací - řetězec znaků, jazyka nebo posloupnosti signálů. Při programování se objevují řádky, matice a objekty - jde o varianty umělých řetězových struktur. Čísla jsou také čáry, ale čísla, ne znaky.


Konverze řetězce na pole PHP umožňuje mnoho různých způsobů. Existují dvě speciální funkce, které to dělají samostatně:
  • $ aArr = explode ('x', 'string');
  • $ aStr = implode ('y', $ aArr).
  • První funkce najde charakter oddělovače 'x' a rozdělí jej na řetězec 'string'. Výsledné pole získá přesně počet prvků (řádků) obsažených mezi znaky "x". Oddělovač symbolů nemusí být nutně klasický:
  • čárka;
  • bod;
  • středníkem.
  • Řádek můžete rozdělit podle podřetězce nebo speciální kombinace znaků. Délka řetězce je strlen () v PHP, délka pole je count (). V prvním případě se posuzuje počet znaků, v druhém případě počet prvků. Protože znak oddělovače není součástí prvků pole, hodnota count ()bude se rovnat počtu dělitelů v konvertovaném řádku mínus jeden.


    inverzní transformaci pole v PHP souladu transformované separátory (může být prázdný) a všechna data (čísla a logické výrazy) sloučit do jednoho řádku. prvek pole může být další pole, ale tento případ je zvláště programátor musí provést. Funkce implode () je daleko od rekurze.
    V tomto příkladu není problém převést pole v PHP linii tak dlouho, jak mezi jejich prvky, nesmí být další pole. Při konverzi asociativních prvků dochází ke ztrátě klíčových informací. Zejména prvky „vypouštění“ a „broskev“ být zbaveni svých klíčů.

    dat separátory a

    , by neměly být považovány za oddělené tečky, čárky, dvojtečky, atd. Toto je soukromý oddělení dat událostí od sebe navzájem. Transformaci vedení PHP vícerozměrné pole selže, a asociativní indexy budou kam vzít. Při analýze linky pomocí oddělovače se linka vždy zobrazí. Ale to není důvod, proč bychom se měli zabývat tím, co bylo dosaženo. Po složení jedné čáry do kompozitních prvků můžete jít dál.
    Například, byl bod v něm několik návrhů (oddělovače "" - point), věta o několika větách (separátory "" - čárka "" - středníkem "" - The bod), výraz je slova (separátor "" - a prostor '- čárka "" - středník "" - The point). S takovou demontáž v PHP vícerozměrné pole se snadno, ale algoritmus je velmi ošklivý: počet zvyšuje separátoru a nedostatek komunikace mezi sousedními body poskytují zaručena zdvojovánívěty, fráze a slova.
    Demontáž řetězce, můžete okamžitě převést sekvence číslic a logické hodnoty jsou pravdivé a nepravdivé. Ale to zejména, klíčové informace se stále neobjeví, protože jako klíč - má smysl, může stroj vytvořit pouze číselný index.

    Kompozitní děliče

    Závěr řady PHP v řetězci se často používá pro oficiální účely. Konfigurační soubor je tradičně napsán v pořadí a název hodnoty odděluje jeden znak nebo dvojtečku. S tímto řešením se výstup pole v PHP provádí v souboru, který automaticky rozděluje řádky a automaticky vrací asociativní pole se zpětným rozpoznáním. Při čtení souboru programátor obdrží řetězec a rozdělí každý řádek na "=" nebo ":", obdrží název a jeho hodnotu. Velmi populární manipulace, ačkoli moderní použití tagování XML z jednoduchého důvodu, že kromě jmen a hodnot, můžete uložit a obnovit další data, například atributy proměnných.
    V příkladu s odstavci (například přirozený text pro sestavení slovníku nebo výsledek analýzy pro vytvoření vzorku dat) není to specifický postup pro převod řetězce do pole, ale integrované řešení pro všechny odstavce nebo bloky informací. Typicky takový úkol vyžaduje opačné rozhodnutí, když bude vytvořena "sada" dat pro vyhledávání informací nebo zálohování linky.

    Demontáž a montáž řetězců - ověření dat

    V PHP jsou pole v řadě přesným řešením. Pokud by zdrojové informace mohly mít syntaktické chyby, je nadbytečnémezery, nesprávné znaky, pak nebudou rozloženy. Výsledkem přeměny zdrojových informací o nepsané programovací zákony je přísně formální a výsledek bude přehledně uspořádán na regálech.
    Reverzní postup vám umožní vytvořit správnou startovací čáru. Srovnáme-li objem prvotních informací a výsledek reverzní transformace, můžeme vyvodit závěry o místě, kde byly provedeny chyby nebo došlo ke ztrátě dat. V PHP může délka pole v kontextu počáteční délky řetězce dovolit vyvodit potřebné závěry.

    čas, datum a štítek události

    ve vývoji kritických projektů při vytváření řídicích objekty, jako jsou čas, nebo akce linie - to je jeden pohled dat a pole - je další. V aplikaci jsou však ekvivalentní. Když je potřeba provádět matematické nebo logické výpočty programátor manipuluje pole, pokud chcete uložit data, používá možnost řetězec.
    Indexy přístup do databáze polí - skutečná praxe společná akce MySQL a PHP, pole v řádku = jeden kód pro více řádků databázových tabulek. Pokud databáze obsahuje desítky tabulek, a každý řádek tabulky lze zvolit kombinací jmen (hodnoty) v kombinaci se tvořící pole přístupových linek pak lze přistupovat pomocí indexu tvorby algoritmus namísto prohledávání databáze .

    převést na pole na algoritmu řetězec může být nahlíženo jako na požadovaný index, zatímco obsah pole je tvořen zcela spuštěndalší události nebo akce uživatele.

    Sloučení polí

    Funkce PHP umožňují manipulaci s poli volně. Existuje však vždy úkol vytvořit vzorek unikátních dat nebo najít data v poli. První problém je řešen iteračním způsobem: políčko (nebo několik polí) je přesunuto a vytváří se řetězec jedinečných hodnot - zřejmým řešením, nikoli však nejúčinnějším. Hledání dat v poli je také smyčkou a pokud je mnoho prvků, pak bude smyčka dostatečně dlouhá a trvá znatelný čas. Můžete odeslat pole do řetězce a pomocí funkce strpos () vyhledat požadovaný element, ale způsobí to problém s detekcí falešného zápisu. Například bylo vyhledáno slovo "zásobník", ale objevil se její vstup do slova "kladivo". Tyto chyby se můžete zbavit, pokud jsou všechny prvky pole sloučeny do řádku zvláštním oddělovačem, čímž se zabrání nejistotě. Pokud byla čára "[tray]" a "[hammer]", nebude se jednat o problémy s vyhledáváním. Neexistuje však žádná záruka, že na skutečných objemech dat funkce strposp () funguje rychleji než smyčka, chybí prvky pole.

    Řešení objektů: pole + řádky

    Nejlepším řešením je, když pole nebo řetězec nezávisle provádí správnou akci. Pokud trochu komplikuje pole a zjednoduší řádky, protože první - to je soukromý případ objektu a druhý - je to tradiční serializace, pak se všichni budou zabývat jejich obchodem.
    V pravý čas je objekt pole a když je požadován řetězec, bude to řetězec. Nemusí nutně mít objekt a pole a řetězec současně. Můžete si vytvořit jedinečnourychlá datová struktura. A logika "pole" a "řetězec" provádět metody objektu. Objektově orientovaný přístup zjednodušuje řešení mnoha úkolů zpracování řetězcových informací, umožňuje se nezaostřit na pole, cykly a funkci zpracování řetězců samotného PHP.

    Dynamika významu

    Obě řady a pole - to je skutečný smysl pro realitu, rozsah použití, úkoly. Neexistuje žádný takový úkol - posílat do polí PHP řádky. Existuje však úkol získat odstavce (věty, fráze, slova, čísla) na základě výsledků získaných v předchozím algoritmu.
    Předchozí algoritmus nese význam a přesný výraz tohoto obsahu je obsažen v poli. Další etapou algoritmu je přeměna významu na jinou prezentaci, vhodnou pro další zpracování nebo aplikaci. Vzhledem k algoritmu, jako dynamice významu a datových transformací, je možné vytvořit spolehlivé, srozumitelné a efektivní transformace.

    Související publikace