OqPoWah.com

PHP: niz v matriki. Iskanje v nizu PHP

Programiranje je sintakso in semantiko. Prva je določena s pravili jezika, druga z izkušnjami razvijalca. V zvezi z nizi lahko razvijalec objektivno naloži sintakso s semantiko. To ni predmet, ne pa matrika v tradicionalnem pomenu. PHP omogoča ustvarjanje nizov spremenljivk različnih vrst, vključno s samimi. Element matrike je lahko funkcija, to je možnost, da se array naloži z resničnim algoritmom z resničnim pomenom.

Sintaksa je stabilna, vendar se razlikuje od različice do različice in ni vedno združljiva, tudi od spodaj navzgor. Programi prenosa - dobro pozabljeni dosežki v zadnjem stoletju. Semantika razvija in se lahko vedno uporablja ne le v kateri koli različici katerega koli jezika, postalo je tradicija, da uporablja sintaktične konstrukcije, da bi izrazila dejstvo, da pravila jezika niso bila zagotovljena. Na primer nizov je to najbolj razumljivo.

Nizi zgradb

Matrika v PHP ima priročno skladnjo in funkcionalnost. To vrsta podatkov je mogoče opisati vnaprej, vendar je pogosto primerna za izdelavo nizov, če so potrebni.

public $ aNone = array () - // je opisana array in ne vsebuje ničesar

public $ aFact = array ("avokado", "breskev", "češnja") - // v tej matriki obstajajo trije elementi

Ustvarjanje matrike med preverjanjem stanja:

$ cSrcLine = `niz razčlenjenih podatkov`;

za ($ i = 0- $ i<13- $ i ++) {

$ cUserLine = inputUserLine () - // vnesite nekaj

če (checkFunc ($ cSrcLine, $ cUserLine) {

$ aResult [] = `Da`- / / dodaj v matriko PHP

} drugo {

$ aResult [] = `Ne`;

}

}

Kot posledica izvajanja tega primera bo ustvarjen niz 13 elementov, katerih vrednosti bodo le vrstice "Da" ali "Ne". Elementi bodo dobili indekse od 0 do 12. Enako učinek lahko dobimo s pisanjem "prihodnje" PHP matrike v niz:

$ cFutureArray = ``;

za ($ i = 0- $ i<13- $ i ++) {

$ cUserLine = inputUserLine () - // vnesite nekaj

če ($ i> 0) `;

če (checkFunc ($ cSrcLine, $ cUserLine) {$ cFutureArray. = `Da`;

} drugo {$ cFutureArray. = `Ne`-}

}

$ aResult = eksplodira (`|`, $ cFutureArray);

php array v niz

Večdimenzionalni nizi

Številni sistemi za upravljanje spletnega mesta (SMS) uporabljajo nizove "v veliki meri". Na eni strani je to dobra praksa, po drugi strani pa aplikacija otežuje uporabo. Tudi če avtor razume doktrino "matrike PHP v matriki", ga ne smemo zlorabiti: ne samo, da se bo razvijalec navadil na kompleksno notacijo. Čez nekaj časa se bo ustvarjalec že dolgo zapomnil, kar je napisal na začetku:

vrnitev polja (

`view_manager` => array (41, `template_path_stack` => array (__DIR__. `/../view`,),

`usmerjevalnik` => array (`routes` => array (`sayhello` => array (

`tip` => `Zend Mvc Router Http Literal`,

`options` => array (`route` => `/ sayhello`, `defaults` => array (

`controller` => `Helloworld Controller Index`, `dejanje` => `indeks`,))))),

`controllers` => array (`invokables` => array (

`Helloworld Controller Index` => `Helloworld Controller IndexController`))

);

To je vzorec praksa «PHP-matrika v matriki" z ZF 2. Ne preveč navdušujočem na prvi, ampak deluje, in morda je ta uspešno okvir (primer iz modula ZendSkeletonApplication / modula / Helloworld / config / module.config.php).

izbrišite element php array

Niz je pomemben načrt podatkov med načrtovanjem in razvojem. Njegova večnamenska različica je bila nekoč priljubljena, vendar je bila sčasoma potrebna polja z največ dvema ali tremi dimenzijami. Torej je lažje in razumljivejše, toda s strokovnega vidika, ko se nekaj začne množiti, potem v izjavi o problemu ali v kodi ni nekaj.

Enostavno, dostopno in razumljivo

Ustvarjanje php array v matriki, je najbolje omejiti na dve ali tri ravni. Kljub stabilnosti in zanesljivosti PHP omogoča napake pri obdelavi skladenjskih konstrukcij. To je mogoče dopuščati z dobrim urejevalnikom kode, pri čemer se uporablja za točno štetje oklepajev in vejic. Vendar pa PHP ne nadzira podatkovnih tipov (to je karma sodobnega programiranja) in omogoča razvijalcu, da izvaja semantične napake.

Pravilo nadzorovanja vrst spremenljivk ali lastnih idej o preoblikovanju semantike v sintakso je pogosto nedopusten razkošje. To je izguba hitrosti scenarija, berljivost kode, zato je preprostost pri kodiranju vedno pomembna vrednost.

PHP ima pomembno negativno funkcijo: ko se pojavi negotovost, skripta preprosto visi. Niso vsi debugi obvladali nepredvidenih okoliščin, veliko pa je odvisno od izkušenj in intuicije razvijalca. Enostavnejši je algoritem, bolj strukturirani podatki so, bolj verjetno je, da bi našli napako ali ne, da bi jo sploh sprejeli.

Značilno je, da ko so se pojavili prvi nizi, so bile predlagane različice podatkov v obliki struktur - neroden poskus ustvarjanja nečesa iz različnih vrst podatkov. Prvi je preživel in pridobil novo učinkovito sintakso, ki se je zgodil v zgodovini.

Enostavne in asociativne nizi

Snemanje dvodimenzionalni niz - je še en par oklepajev "[" in "]", na primer: $ aSrcData [1] [2] pomeni dostop do elementa [2] array [1], vhodni matriki $ aSrcData. V PHP-u ni potrebe po deklariranju podatkov vnaprej. Vsako prijavljeno informacijo je vedno mogoče preveriti za obstoj.

Zelo učinkovito je ustvariti nekaj le takrat, ko je to potrebno, v obliki, v kateri je bilo potrebno, in uničiti, ko je potreba po njej izginila. Z uporabo pomembnih imen kot ključev (indeksov) lahko dobite berljive konstrukte, ki so smiselni v kontekstu trenutnega mesta v algoritmu:

$ aAnketa [`ime`] = `Ivanov`
$ aAnketa [`starost`] = 42-
$ aAnketa [`delo`] = `direktor`
$ aAnketa [`aktivno`] = true-
$ aTable [] = $ aAnketa-

$ aAnketa [`ime`] = `Petrov`
$ aAnketa [`starost`] = 34-
$ aAnketa [`delo`] = `Upravitelj`
$ aAnketa [`aktivno`] = true-
$ aTable [] = $ aAnketa-

$ aAnketa [`ime`] = `Afanasiev`-
$ aAnketa [`starost`] = 28-
$ aAnketa [`delo`] = `delo`
$ aAnketa [`aktivno`] = false-
$ aTable [] = $ aAnketa;

$ sOne. = implode (";", $ aTable [1]). "
`- // druga PHP matrika v nizu
$ sOne. = $ aTable [1] [`delo`] - // dostop do enega elementa druge matrike

Rezultat tega primera (prva matrika je normalna, ključi v njem se začnejo z 0, druga matrika je asociativna, v njem so štiri ključne besede: `ime`, `starost`, `delo`, `aktivno`):

$ sOne = `Petrov-34- Manager- 1
Manager ";




V tem preprostem primeru si lahko ogledate, kako je mogoče ustvariti vprašalnik za vse zaposlene. Ustvarite lahko niz zaposlenih z indeksi po njihovih številskih tablicah in, če potrebujete določenega zaposlenega, ga izberite s številko zaposlenega.

Če ima organizacija podrazdelke ali sezonske delavce ali je treba ločeno identificirati delovne upokojence, je zasnova "PHP-array in array" zelo priročna, vendar se nikoli ne bi smela znebiti dimenzionalnosti. Dve ali tri dimenzije so meja za učinkovito rešitev.

išči v php array

Tipke za delo z nizi

Če bi bilo pred tem pomembno, kako vse deluje, potem v zadnjih letih tradicije binarne dobe, ko je programer želel točno vedeti, kako so elementi arrayja shranjeni in bi želeli imeti neposreden dostop do njih, so bili popolnoma pozabljeni. Obstaja veliko kodnih znakov, ki v pomnilniku zasedajo več kot en bajt. Beseda "bit" je zdaj mogoče najti samo v bitnih operacijah iskanja, vendar je iskanje v matriki PHP ločena tema. Dostop do elementov je lahko preprost in združljiv. V prvem primeru so elementi matrike (ki imajo katero koli od vrst, ki so na voljo v PHPu) oštevilčene 0, 1, 2, ... V drugem primeru programer podaja lasten indeks, ki ga pogosto imenujemo »ključ« za dostop do želene vrednosti.

$ aLine ["sadje"] = "oranžna" - // tukaj je ključ PHP array = "sadje"

ali (tako da je vse pravilno pri kodiranju strani in kode):

$ Aline [iconv ( "UTF-8", "CP1251", "sadje")] = iconv ( "UTF-8", "CP1251", "oranžna");

Ko dodate $ aLine v novo vrednost:

$ aLine [] = iconv (`UTF-8`, `CP1251`, `breskev`) -
$ aLine [iconv ("UTF-8", "CP1251", "zelenjava")] = iconv ("UTF-8", "CP1251", "kumare") -
$ aLine [] = iconv ("UTF-8", "CP1251", "jajčevec");

kot rezultat cikla:

foreach ($ aLine kot $ ck => $ cv) {
$ cOne. = $ ck. `=`. $ cv. "
"-
}

bodo prejeli:

sadje = oranžna
0 = breskev
zelenjava = kumare
1 = jajčevcev

PHP-ključ matrike z dodatkom elementov "breskev" in "jajčevec" se vzpostavi zaporedno od 0, in ko ga določite, bo njegova vrednost enaka tej vrednosti.

Odstranjevanje predmetov iz matrike

php odstranite matriko

Najlažji način za odstranitev elementa matrike PHP med njegovo obdelavo. V tem primeru je na primer zaradi izvajanja zanke izvirno polje skenirano in ustvarjena nova, v katero nepotrebni elementi preprosto niso zapisani.

Možno je ukrepati lažje. Če se uporabi zadnji primer:

unset ($ aLine [0]) - // odstranite element iz matrike PHP

potem bo rezultat:

sadje = oranžna
zelenjava = kumare
1 = jajčevcev

Različice za manipulacijo elementov nizov lahko zgradimo veliko. Na primer, z uporabo funkcij: implode () in explode () lahko napišete matriko PHP v niz z enim omejenim številom in jo razdelite nazaj v drugo matriko - z drugim separatorjem.

Če želite preprosto izbrisati celotno polje v PHPu, preprosto napišite: unset ($ aLine);

To je dovolj.

Poiščite matriko

PHP vsebuje posebne funkcije iskanja array_keys (), array_values ​​(), array_key_exists (), in in_array (), vendar preden se odločite za njihovo uporabo, morate razmisliti o iskanju v matriki PHP sami.

ključ php array

Vsak projekt je konkreten predmetno področje, konstruirane nizi, še posebej, če je del semantike prenesen v sintakso in je predstavljen s kompletom popolnoma konkretnih, smiselnih ključev. To vam omogoča izvajanje lastnih iskalnih funkcij, ki jih lahko označite tudi smiselno.

V PHP lahko kličete funkcije, katerih ime je določeno med izvajanjem programa. Zelo praktičen primer iz knjižnice PHPWord, ki vam omogoča branje in izdelavo dokumentov MS Word:

$ elements = array (`Besedilo`, `Inline`, `TextRun`, `Link`, `PreserveText`, `TextBreak`,
ListItem, ListItemRun, tabela, slika, objekt, opomba,
`Endnote`, `CheckBox`, `TextBox`, `Field`, `Line`);

$ funkcije = array ();

za ($ i = 0- $ i < št. ($ elementov) - $ i ++) {
$ funkcije [$ i] = `dodaj`. $ elementi [$ i] -
}

Posledično bo matrika $ funkcij dobila vrednosti elementov $ elements, to je imena dejanskih funkcij, ki delujejo z dejanskimi elementi dokumenta.

Če kličete $ funkcije [4] za $ elemente [4], lahko dobite idealno iskanje in hiter rezultat.

Sortiranje predmetov

Podatki sortiranje naloga je pomembna, in PHP ponuja več funkcij za to: vrsta (), rsort (), asort (), ksort (), ... naraščajoči in padajoči elementi zadnjih dveh funkcij ohranitev razmerja med ključe in vrednosti. Včasih je smiselno mešati vrednosti array naključno - shuffle ().

php vrednost v matriki

Z uporabo funkcij PHP za razvrščanje ne smemo pozabiti, da lahko elementi ne vsebujejo le različnih vrst, temveč tudi ne povsem naravne vsebine. Najprej morate biti zelo previdni glede razvrščanja vrstic, ki vsebujejo ruske črke, razvrščanja datuma in številk, ki so zapisane v različnih formatih.

php array v matriki

Najboljši način pisanja idealne rešitve, vsaj v fazi testiranja scenarija, je ročno razvrščanje. Pomagal bo predvideti nepredvidene situacije.

Nizke matrike

S funkcijami implode () in explode () se lahko matrika zlahka preoblikuje v niz in se vrne. To vam omogoča shranjevanje podatkov v kompaktnem pogledu in jih po potrebi uporabite v primernem stanju.

Vrstica zaporedoma odpira nove možnosti. Na primer, naloga iskanja ključnih besed v besedilu zahteva, da rezultat iskanja ne bo večkrat dodan.

$ cSrcLine = `Seznam besedila TextItemRun TextBox ListItem Ozadje polja TextBox CheckBox TextBox`;

$ aSrc = eksplodira (``, $ cSrcLine) -
$ cDstLine = ``;

za ($ i = 0- $ i < št. ($ aSrc) - $ i ++) {
$ cFind = `[`. $ aSrc [$ i]. `]` -
če je (! is_integer (strpos ($ cDstLine, $ cFind))) {
$ cDstLine. = $ cFind-
}
}
$ aDst = eksplodira (`] [`, $ cDstLine) -

$ cOne = implode (`-`, $ aDst);

Kot rezultat, spremenljivka $ CONE prejeli le vrednosti od originalnih linij, ki izpolnjujejo tam nekoč: "učbenike ListItemRun- TextBox- Listitem; potrditvena Box- CheckBox- Opomba".

Ruski jezik v ključih in pomenih

Pri sintaktičnih konstrukcijah ni priporočljivo uporabljati ničesar, kar je povezano z nacionalnimi kodami. Ruski jezik, tako kot vsi drugi jeziki, katerih znaki so zunaj a-z, ne bodo povzročali težav na področju podatkov, ne pa v sintaksi kode. Včasih tudi preprosta naloga v PHP "za izdelavo matrike na tiskalnik ali na zaslon" bo vodila do "krakozyabrama" in pogosteje ustaviti skript.

PHP - jezik zvest in strpna nacionalnega značaja, vendar pa obstaja veliko situacij, kjer ima količina opravljenega dela, da spet ne samo zato, ker na pravem mestu ob pravem času, bo pop up ključ, ugotoviti, kateri ne bo mogoče.

PHP sintaksa in jezikovno okolje

Ne pozabite, da je sintaksa PHP ena stvar, vendar se sintaksa te sintakse "ukvarja" z drugimi aplikacijami, z operacijskim sistemom, z možnostmi strojne opreme. Obstaja veliko možnosti, nikoli ni mogoče predvideti vsega.

Pravilo "v kodi je samo koda, in na vhodu, znotraj in na izhodu so kakršne koli informacije" bo pomagal preprečiti nepredvidena presenečenja. PHP-vrednost v matriki je lahko "ruska", vendar mora biti ključ do njega sintaktično pravilna ne le s položajev danega jezika, temveč tudi s položajev njegovega delovnega okolja.

Zdieľať na sociálnych sieťach:

Príbuzný