/ / PHP: masyvas masyvas. Ieškoma PHP masyvo

PHP: masyvas masyvas. Ieškoma PHP masyvo

Programavimas yra sintaksė ir semantika. Pirmasis nustatomas pagal kalbos taisykles, antras - pagal kūrėjo patirtį. Kalbant apie masyvus, kūrėjas gali objektyviai įkelti sintaksę su semantika. Tai nėra objektas, o ne masyvas tradicinėje prasme. PHP leidžia kurti įvairių tipų kintamųjų, įskaitant patys, masyvus. Masyvo elementas gali būti funkcija, tai yra galimybė įkelti masyvą su tikru algoritmu, turinčiu tikrą reikšmę.

Sintaksė yra stabili, tačiau ji skiriasi nuo versijosversija ir ne visada gali būti suderinama, net iš apačios į viršų. Perkėlimo programos - gerai pamirštas praėjusio amžiaus pasiekimas. Semantika vystosi ir visada gali būti taikoma ne tik bet kurios kalbos versijoje; tapo tradicija naudoti sintaksines konstrukcijas, siekiant išreikšti tai, kad kalbos taisyklės net nebuvo numatytos. Masyvų pavyzdžiu tai galima suprasti paprasčiausiai.

Pastatų masyvai

PHP masyvas turi patogų sintaksę ir funkcionalumą. Tokio tipo duomenys gali būti aprašyti iš anksto, tačiau dažnai patogu kurti masyvus "on-the-fly", jei reikia.

viešas $ aNone = masyvas (); // masyvas aprašytas ir nieko nėra

visuomenės $ aFact = masyvas ("avokadas", "persikas", "vyšnia"); // šioje masyvoje yra trys elementai

Sukūrę masyvą tikrindami sąlygą:

$ cSrcLine = "analizuojamų duomenų eilutė";

už ($ i = 0; $ i <13; $ i ++) {

$ cUserLine = inputUserLine (); // įveskite kažką

jei (checkFunc ($ cSrcLine, $ cUserLine) {

$ aResult [] = "Taip"; // pridėti prie PHP masyvo

} dar {

$ aResult [] = "Ne";

}

}

Dėl šio pavyzdžio vykdymo rezultatas13 elementų masyvas, kurio reikšmės bus tik eilutės "Taip" arba "Ne". Elementai gaus indeksus nuo 0 iki 12. Toks pats efektas gali būti gautas rašant "ateities" PHP masyvą į eilutę:

$ cFutureArray = "";

už ($ i = 0; $ i <13; $ i ++) {

$ cUserLine = inputUserLine (); // įveskite kažką

jei ($ i> 0) ($ cFutureArray. = "|"; }

if (checkFunc ($ cSrcLine, $ cUserLine) ($ cFutureArray. = "Taip";

} else {$ cFutureArray. = "Ne"; }

}

$ aResult = sprogti ("|", $ cFutureArray);

PHP masyvas eilutėje

Daugiamačių matricos

Daugelis svetainių valdymo sistemų (SMS)naudokite masyvus "dideliu mastu". Viena vertus, tai yra gera praktika, kita vertus, ji tampa sudėtinga. Net jei autorius supranta "PHP masyvo masyvo" doktriną, jis neturėtų būti netinkamai panaudotas: ne tik kūrėjas turi priprasti prie sudėtingo žymėjimo. Po kurio laiko kūrėjas pats ilgą laiką prisimins tai, ką jis parašė iš pradžių:

grįžti masyvas (

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

"router" => array ("maršrutai" => masyvas ("sayhello" => masyvas (

"type" => "ZendMvcRouterHttpLiteral",

"options" => array ("route" => "/ sayhello", "default" => array (

"kontroleris" => "HelloworldControllerIndex", "veiksmas" => "indeksas",))))),

"valdikliai" => masyvas ("invokables" => masyvas (

"HelloworldControllerIndex" => "HelloworldControllerIndexController"))

);

Tai pavyzdys "PHP masyvo masyvas" iš ZF2. Ne per įkvepiantis ne pirmas, bet jis veikia, o gal daro šį sėkmingą sistemą (pavyzdžiui, iš modulio ZendSkeletonApplication / modulio / HelloWorld / config / module.config.php).

ištrinti php masyvo elementą

Masyvas yra svarbi duomenų struktūraprojektavimas ir tobulinimas. Jo daugkartinė versija kažkada buvo populiari, tačiau laikui bėgant reikėjo daugiausiai dviejų ar trijų matmenų. Taigi, tai lengviau ir suprantamesnė, tačiau profesionaliu požiūriu, kai kažkas pradeda daugintis, tai nėra atvejis, kai problema ar kodas.

Paprasta, prieinama ir suprantama

Geriausia sukurti PHP masyvo masyvątik dviejų ar trijų lygių. Nepaisant PHP stabilumo ir patikimumo, jis leidžia klaidų apdorojant sintaksines konstrukcijas. Tai gali būti toleruojamas turint gerą kodo redaktorių, kuris yra naudojamas tiksliai skaičiuoti skliaustus ir kablelius. Tačiau PHP nekontroliuoja duomenų tipų (tai yra šiuolaikinio programavimo karma) ir leidžia kūrėjui praktikuoti semantines klaidas.

Taisyklė yra kontroliuoti kintamųjų tipus arbaSavo idėjos apie semantikos transformaciją į sintaksę dažnai yra nepriimtina prabanga. Tai scenarijų greičio praradimas, kodo įskaitomumas ... todėl kodavimo paprastumas visada turi reikšmingą reikšmę.

PHP turi reikšmingą neigiamą požymį: Kai kyla netikrumas, scenarijus tiesiog pakimba. Ne visi debugeriai susidoroja su nenumatytomis aplinkybėmis ir labai priklauso nuo kūrėjo patirties ir intuicijos. Kuo paprastesnis algoritmas, tuo labiau struktūrizuota informacija, tuo labiau tikėtina, kad bus klaida arba visai nepriimta.

Tai būdinga tai, kad pasirodžius pirmiesiems matricams,Siūlomi duomenų variantai struktūrų pavidalu - nepatogus bandymas kurti kažką iš įvairių tipų duomenų. Pirmasis išgyveno ir įgijo naują veiksmingą sintaksę, pastarasis sumažėjo istorijoje.

Paprasti ir asociacijos masyvai

Dvigubo masyvo įrašymas yra kita poraskliausteliuose "[" ir "], pavyzdžiui: $ aSrcData [1] [2] nurodo masyvo elementą [2], įvedantį į $ aSrcData masyvą. PHP nėra reikalavimo iš anksto paskelbti duomenis. Bet kokią paskelbtą informaciją visada galima patikrinti egzistavimu.

Labai veiksmingai ką nors sukurti tik tada,kai reikia, toje formoje, kuria ji buvo reikalinga, ir sunaikinti, kai jame dingsta. Naudojant prasmingus pavadinimus kaip raktus (indeksus), galite gauti skaitomus konstrukcijas, kurie yra reikšmingi dabartinės algoritmo vietos kontekste:

$ aAnketa ["name"] = "Ivanov";
$ aAnketa ["age"] = 42;
$ aAnketa ["work"] = "Director";
$ aAnketa ["active"] = true;
$ aTable [] = $ aAnketa;

$ aAnketa ["name"] = "Petrov";
$ aAnketa ["age"] = 34;
$ aAnketa ["work"] = "Manager";
$ aAnketa ["active"] = true;
$ aTable [] = $ aAnketa;

$ aAnketa ["name"] = "Afanasyev";
$ aAnketa ["age"] = 28;
$ aAnketa ["work"] = "Work";
$ aAnketa ["active"] = false;
$ aTable [] = $ aAnketa;

$ sOne. = implode (";", $ aTable [1]). "<br/>"; // antroji PHP masyvas eilutėje
$ sOne. = $ aTable [1] ["work"]; // nurodo vieną elementą iš antrojo masyvo

Šio Pavyzdžiui rezultatas (pirmas masyvas - įprasti mygtukai jame prasideda 0, antrą masyvas - Association, yra keturi mygtukai: "vardas", "Amžius", "darbas", "aktyvus"):

$ sOne = "Petrov; 34; Manager; 1 <br/> Manager";

Šiame paprastame pavyzdyje galite pamatyti, kaip tai padarytiSukurtas klausimynas gali būti taikomas visiems darbuotojams. Galite sukurti darbuotojų skaičių su indeksais pagal jų numerius ir, jei jums reikia konkretaus darbuotojo, tada pasirinkite jį pagal darbuotojo numerį.

Jei yra organizacijos vienetai, ar jie yrasezoniniai darbuotojai arba reikalaujama atskirai identifikuoti dirbančius pensininkus ... "PHP masyvo masyvo" dizainas yra labai patogu, tačiau niekada neturėtų užgožti jo dydžio. Du ar trys matmenys yra veiksmingo sprendimo riba.

ieškoti php masyvo

Raktai dirbti su masyvais

Jei jis naudojamas spręsti, kaip viskas veikia, tadaPastaraisiais metais buvo visiškai pamirštamos binarinės eros tradicijos, kai programuotojas norėjo tiksliai žinoti, kaip saugomi masyvo elementai ir jie norėjo turėti tiesioginę prieigą prie jų. Ten buvo koduotes, kurie užima per daug atminties yra ne vienas baitas. Žodis "bit" dabar gali būti rastas tik bitų paieškos operacijose, tačiau PHP masyvo paieška yra atskira tema. Prieiga prie elementų gali būti paprastas ir asociacinis. Pirmuoju atveju masyvo elementai (turintys kokį nors PHP tipą) yra sunumeruojami 0, 1, 2 ... Antroje situacijoje programuotojas nurodo savo indeksą, kuris dažnai vadinamas "raktu" norint pasiekti pageidaujamą vertę.

$ aLine ["fruit"] = "oranžinė"; // čia yra PHP raktas iš masyvo = "vaisių"

arba (kad būtų viskas teisingai su puslapio ir kodo kodavimu):

$ aLine [iconv ("utf-8", "CP1251", "fruit")] = iconv ("utf-8", "CP1251", "oranžinė");

Pridedant $ aLine prie naujos vertės:

$ aLine [] = iconv ("utf-8", "CP1251", "persikų");
$ aLine [iconv ("utf-8", "CP1251", "vegetable")] = iconv ("utf-8", "CP1251", "agurkas");
$ aLine [] = iconv ("utf-8", "CP1251", "baklažanai");

dėl ciklo:

foreach ($ aLine kaip $ ck => $ cv) {
$ cOne. = $ ck. "=". $ cv. "<br/>";
}

gaus:

vaisiai = oranžinė
0 = persikas
daržovių = agurkas
1 = baklažanai

Masyvo PHP raktas, pridedant elementus "persikų" ir "baklažanų", yra formuojamas nuosekliai iš 0, o kai jūs nurodote jo vertę, bus lygi šiai vertei.

Elementų pašalinimas iš masyvo

php pašalinti masyvą

Lengviausias būdas pašalinti PHP elemento elementą perjo apdorojimas. Šiuo atveju, pavyzdžiui, vykdant kilpą, pradinė masyvas yra nuskaitomas ir sukurtas naujas, į kurį nereikalingi elementai tiesiog nėra parašyti.

Galima veikti lengviau. Jei taikomas paskutinis pavyzdys:

Unset ($ aLine [0]); // pašalinti PHP masyvo elementą

tada rezultatas bus:

vaisiai = oranžinė
daržovių = agurkas
1 = baklažanai

Variantai manipuliuoti elementų masyvaigalima statyti rinkinį. Pavyzdžiui, naudodamiesi funkcijomis: implode () ir sprogti (), galite parašyti PHP masyvą į vieną atskirą eilutę ir sugrąžinti ją į kitą masyvą - kito skirtuvo.

Norėdami paprasčiausiai ištrinti visą masyvą PHP, tiesiog rašykite: unset ($ aLine);

To pakanka.

Ieškoti masyvo

PHP yra specialių paieškos funkcijųarray_keys (), array_values ​​(), array_key_exists (), ir in_array (), tačiau prieš jums nuspręsti juos naudoti, turėtų apsvarstyti galimybę ieškoti į PHP apie savo.

php masyvo raktas

Bet koks projektas yra konkreti temasukonstruoti masyvai, ypač kai dalis semantikos yra perkelta į sintaksę ir yra visiškai konkrečių, prasmingų raktų rinkinys. Tai leidžia jums atlikti savo paieškos funkcijas, kurios taip pat gali būti reikšmingai apibrėžtos.

PHP galite skambinti funkcijoms, kurių vardai apibrėžti vykdant programą. Labai praktiškas PHPWord bibliotekos pavyzdys, leidžiantis jums skaityti ir kurti MS Word dokumentus:

$ elements = masyvas (Tekstas, Inline, TextRun, Link, PreserveText, TextBreak,
ListItem, ListItemRun, lentelė, vaizdas, objektas, išnaša
"Endnote", "CheckBox", "TextBox", "Field", "Line");

$ functions = masyvas ();

už ($ i = 0; $ i <skaičiaus ($ elementai); $ i ++) {
$ functions [$ i] = "add". $ elements [$ i];
}

Kaip rezultatas, masyvas $ functions gaus reikšmes $ elementų masyvo, ty faktinių funkcijų, kurios dirba su faktiniais dokumento elementais, pavadinimus.

Skambinant $ functions [4] $ elements [4], galite gauti idealų paiešką ir greitą rezultatą.

Rūšiavimo elementai

Duomenų rūšiavimo užduotis yra svarbi, irPHP siūlo keletą funkcijų: sort (), rsort (), asort (), ksort (), ... Augant ir mažėjant elementams, antrosios dvi funkcijos išsaugo santykį tarp raktų ir reikšmių. Kartais prasminga sumaišyti masyvo reikšmes atsitiktinai - shuffle ().

PHP masyvo reikšmė

Naudodami PHP funkcijas rūšiuoti, neturėtumėtepamiršk, kad elementai gali turėti ne tik skirtingus tipus, bet ir ne visai natūralų turinį. Visų pirma, reikia labai atsargiai tvarkyti eilutes su rusų raidėmis, rūšiuojant datą, taip pat numerius, kurie įrašomi skirtingais formatais.

PHP masyvas masyvas

Geriausias būdas parašyti idealų sprendimą patys, bent scenarijų testavimo fazėje, yra rankinis rūšiavimas. Tai padės numatyti nenumatytas situacijas.

Mažosios masyvo masyvai

Dėl funkcijų implode () ir sprogti () masyvasgali būti lengvai paverstas virve ir grįžti. Tai leidžia jums saugoti duomenis kompaktiškame rodinyje ir, jei reikia, juos įdiegti į patogią būseną.

Iš eilės masyvas atveria naujas galimybes. Pavyzdžiui, raktinių žodžių paieškos tekste užduotys reikalauja, kad paieškos rezultatas nebūtų pridėtas pakartotinai.

$ CSrcLine = "tekstas tekstas ListItemRun TextBox listitem TextBox pažymėti varnelę TextBox išnaša";

$ aSrc = sprogti ("", $ cSrcLine);
$ cDstLine = "";

už ($ i = 0; $ i <count ($ aSrc); $ i ++) {
$ cFind = "[". $ aSrc [$ i]. "]";
jei (! is_integer (strpos ($ cDstLine, $ cFind))) {
$ cDstLine. = $ cFind;
}
}
$ aDst = sprogti ("] [", $ cDstLine);

$ cOne = implode (";", $ aDst);

Kaip rezultatas, kintamasis $ CONE gauti tik vertybes nuo originalo eilutes, kurios atitinka ten iš karto: "tekstu; ListItemRun; TextBox; listitem; Patikrinkite; Box; langelį; išnaša".

Rusų kalba raktų ir prasmių

Nerekomenduojama naudoti nieko, kas yra prijungtassu nacionaliniais kodais, sintakinėmis konstrukcijomis. Rusų kalba, kaip ir visos kitos kalbos, kurių simboliai yra už a-z ribų, nesukels problemų duomenų zonoje, o ne kodo sintaksėje. Kartais net paprasta PHP užduotis "išvesties masyvą prie spausdintuvo ar ekrano" sukels "krakozyabram", o dažniau tik sustabdys scenarijų.

PHP yra lojalaus kalba ir tolerantiškanacionalinis charakteris, bet yra daug atvejų, kai darbo suma atliekama turi daryti vėl tik todėl, reikiamoje vietoje reikiamu laiku bus pop-up raktą, nustatyti, kurie nebus įmanoma.

PHP sintaksė ir kalbų aplinka

Reikėtų prisiminti, kad PHP sintaksė yra vienas dalykas, betŠios sintaksės konstrukcijos "spręsti" su kitomis programomis, su operacine sistema, su aparatūros parinktimis. Yra daug variantų, niekada neįmanoma numatyti visko.

Taisyklė "kodeje yra tik kodas, o įvestiesviduje, o produkcija yra bet kokia informacija "padės išvengti nenumatytų staigmenų. PHP reikšmė masyvo gali būti "rusų kalba", tačiau jos raktas turi būti sintetiniu būdu teisingas ne tik iš nurodytos kalbos pozicijų, bet ir iš jos darbo aplinkos pozicijų.

Skaityti daugiau: