Computer, Programméieren
PHP: Array an engem Array. Recherche an engem Array vu PHP
Programméierung ass Syntax a Semantik. Déi éischt gëtt vun de Regele vun der Sprooch festgeluecht, déi zweet duerch d'Erfahrung vum Entwéckler. Am Respekt vun Arrays kann de Entwéckler objektiv d'Syntax mat Semantik eroflueden. Dëst ass net e Objet, awer net méi e Grupp am traditionelle Sënn. PHP erméiglecht et Arrays vu Variabel vu verschiddenen Typen, dorënner selwer selwer ze erstellen. Een Element vun engem Array kann eng Funktioun sinn, dh d'Fäegkeet, e Array mat engem realen Algorithmus opzehuelen, mat reelle Bedeitung.
De Syntax ass stabil, awer variéiert vu Versioun op Versioun an kann net ëmmer kompatibel sinn, och vu méi ënnen. Portabilitéitsprogrammer - ganz vergiess Erreechung vun de leschte Joerhonnert. Semantik entwëckelt a kann ëmmer an allem an enger Versioun vun enger Sprooch applizéiert ginn; Et gouf eng Traditioun fir syntaktesch Konstruktiounen ze benotzen fir d'Tatsaach auszedrécken datt et keng Regele fir d'Sprooch waren. Am Beispiller vun Arrays kann dat am einfachsten sinn.
Konstruktioun
De Grupp vun PHP huet bequem Syntax a Funktionalitéit. Dës Zort vun Date kann am Viraus beschriwwe ginn, mee et ass oft praktesch flamenden Ofgrond op der fléien ze schafen als waren.
Public $ aNonn = Array (); // d'Array ass beschriwwen a enthält näischt
Public $ aFact = Array (Avocado, Peach, Cherry); // an dësem Array ass et dräi Elementer
Schaffen en Array beim Prévisioun vun enger Conditioun:
$ CSrcLine = 'String vun Parsedaten';
Fir ($ i = 0; $ i <13; $ i ++) {
$ CUserLine = inputUserLine (); // Eier eppes
Wann (checkFunc ($ cSrcLine, $ cUserLine) {
$ AResult [] = 'Jo'; // add to the PHP array
} Else {
$ AResult [] = 'Nee';
}}
}}
Als Resultat vun der Ausféierung vun dësem Exemplar wäerten eng Rei vun 13 Elementer geschafen ginn, deenen hir Wäerter nëmmen d'Zeilen "Jo" oder "Nee" sinn. Elementer kréien Indizes vun 0 bis 12. Datselwecht Effekt kann erzielt ginn duerch de Schreiwe vun der "zukunftsträicher" PHP-Array un d'Linn:
$ CFutureArray = '';
Fir ($ i = 0; $ i <13; $ i ++) {
$ CUserLine = inputUserLine (); // Eier eppes
Wann ($ i> 0) {$ cFutureArray. = '|'; }}
Wann (checkFunc ($ cSrcLine, $ cUserLine) {$ cFutureArray. = 'Jo';
} Else {$ cFutureArray. = 'Nee'; }}
}}
$ AResult = Explode ('|', $ cFutureArray);
Multidimensional Arrays
Vill Site - Verwaltungssystemer (SMS) benotzen d'Arrays "op enger grousser Skala". Engersäits ass dat gutt Übung, op der anerer Säit mécht se Applikatioun schwiereg. Och wann den Auteur déi Doktrin verstekpt "PHP-Array an engem Array", da misst et net verwiesselt ginn: net nëmmen de Developer muss zu komplexen Notation genotzt ginn. Oft nach eng gewëssen Zäit huet de Schëpfer selwer eng laang Zäit erënnert, wat hien op éischt geschriwwen huet:
Récksäit (
'View_manager' => array (41, 'template_path_stack' => array (__DIR__ ./ /../view ',)
'Router' => array ('routes' => array ('sayhello' => array (
'Typ' => 'Zend \ Mvc \ Router \ Http \ Literal',
'Optiounen' => array ('route' => '/ sayhello', 'defaults' => array (
'Controller' => 'Helloworld \ Controller \ Index', 'action' => 'index',))))),
'Controller' => Array ('invokables' => array (
'Helloworld \ Controller \ Index' => 'Helloworld \ Controller \ IndexController'))
);
Dëst ass eng Ausnahmpraxis vum "PHP-Array am Array" vum ZF 2. Et ass net vill op der éischter Inspiratioun, awer et funktionnéiert a vläicht dëse Frame mat Erfolleg (Beispiller vum ZendSkeletonApplication / Modul / Helloworld / config / module.config.php).
Een Array ass eng wichteg Datebank während Design a Entwécklung. Seng multidimensional Versioun war eemol populär, awer iwwer Zäit war et e Besoin fir Arrays vun engem Maximum vu zwee oder dräi Dimensiounen. Also ass et méi einfach a méi verständlech, mee aus der Sicht vun der Professionalitéit, wann eppes eppes multiplizéiert begleet, heescht dat, datt eppes an der Erklärung vum Problem oder am Code net de Fall ass.
Einfache, accessibel an ze verstoen
Schaffen e php-Array an engem Array, ass et besser fir op zwou oder dräi Niveau ze limitéieren. Trotz der Stabilitéit an der Zouverlässegkeet vun PHP ass et e Fehler an der Veraarbechtung vu syntakteschen Konstruktiounen. Dat kann toleréiert ginn duerch e gudde Code Editor, fir gewinnt ze ginn fir genau Klammern an Kommandoen ze zielen. Awer PHP kontrolléiert net Date types (dat ass de Karma vun der moderner Programmatioun) an erlaabt dem Entwéckler semantesch Fehler.
D'Regel fir d'Typen vu Variablen ze kontrolléieren oder eegent Iddien vun der Semantik ze widderleeën an der Syntax ass oft e inadmissibel Luxus. Dëst ass e Verloscht vu Skriptgeschwindegkeet, Liestabilitéit vum Code, ... also Einfachheet an der Kodéierung ass ëmmer ee signifikante Wäert.
PHP huet eng wesentlech negativ Feature: wann d'Ongewëssheet ass, hänkt d'Skript nëmmen un. Net all Debugger zéien sech mat ongeforenen Ëmstänn aus, a vill hänkt vun der Erfahrung a der Intuition vum Entwéckler. De méi einfacher Algorithmus, wat méi strukturéiert ass d'Informatioun, desto méi wahrscheinlech ass et e Feeler ze fannen oder net ze vereenegen.
Et ass charakteristesch datt wann déi éischt Arrays erschéngen sinn, Datenvariänen an d'Form vun Strukturen proposéiert ginn - e schaarf Versuch, eppes aus verschiddenen Typen vu Daten ze schafen. Déi éischt hunn iwwerliewt an hunn eng nei effektive Syntax, déi lescht duerch d'Geschicht gefall.
Einfach an Associativer Arrays
Schreift engem zweedimensionalen Array ass e puer Paar Klammer "[" an "]", zum Beispill: $ aSrcData [1] [2] bezitt d'Element [2] vun Array [1] op den $ aSrcData-Array. An PHP gëtt et keen Erfolleg fir d'Donnéeën am Viraus ze deklaréieren. All Informatioun kann ëmmer gefrot ginn fir d'Existenz.
Et ass ganz effektiv eppes ze schafen wann et néideg ass, an der Form, wou et néideg war, a fir ze zerstéieren wann d'Besoin fir et verschwonnen ass. Sënnvoll Nimm benotzen wéi d'Schlëssel (Indizes), kënnt Dir léistabel Konstrukt liwweren, déi sinn am Kontext vun der aktueller Plaz am Algorithmus sinn sinn:
$ AAnketa ['Numm'] = 'Ivanov';
$ AAnketa ['age'] = 42;
$ AAnketa ['Aarbecht'] = 'Direkter';
$ AAnketa ['aktiv'] = richteg;
$ ATable [] = $ aAnketa;
$ AAnketa ['Numm'] = 'Petrow';
$ AAnketa ['age'] = 34;
$ AAnketa ['Aarbecht'] = 'Manager';
$ AAnketa ['aktiv'] = richteg;
$ ATable [] = $ aAnketa;
$ AAnketa ['NAME '] =' Afanasiev ';
$ AAnketa ['age'] = 28;
$ AAnketa ['Aarbecht'] = 'Aarbechter';
$ AAnketa ['aktiv'] = falsch;
$ ATable [] = $ aAnketa;
$ SOne. = Implode (";", $ aTable [1]). '
'; // Déi zweet PHP-Array am String
$ SOne. = $ ATable [1] ['Aarbecht']; // Referenz op ee Element vun der zweet Matière
D'Resultat vun dësem Beispill (dat éischt Array ass normal, d'Schlësselen an der et mat 0 starten, den zweeten Array assassociativ, et gi véier Schlësselen: 'Numm', 'Alter', 'Aarbecht', 'aktiv'):
$ SOne = 'Petrow; 34; Manager; 1
den Manager;
An dësem einfachen Beispill kënnt Dir kucken wéi deen erstallt Questionnaire fir all Mataarbechter applizéiert kënne ginn. Dir kënnt en Array vun Ugestaller mat Indizes mat Servicerennummeren kreéieren an, wann Dir e bestëmmte Mataarbechter brauch, da wielt se d'Employeurnummer aus.
Wann d'Organisatioun Subdivisioune hutt oder dass se saisonär Aarbechter sinn, oder et ass néideg fir hir Pensiounen gespaart ze identifizéieren, ... de Design vun "PHP-Array am Array" ass ganz bequem, awer een soll ni mat Dimensioun geliwwert ginn. Zwee oder dräi Dimensioune sinn d'Limit fir eng effektiv Léisung.
Schlëssel fir mat Arrays ze schaffen
Wann éier et wichteg ass wéi alles funktionnéiert, sinn an de leschte Joren d'Traditioune vun der binärer Ära, wann de Programmierer genee wësse wollt wéi d'Elementer vum Array gespäichert waren a wollte direkten Zougang zu hinnen hunn, komplett vergiess. Et gi vill Zeechekodéierungen déi méi wéi een Byte an Erënnerung huelen. D'Wuert "Bit" kann elo just a Bëschgesellschaften fonnt ginn, awer d'Sich zu engem PHP-Array ass e gesonden Thema. Zougank op Elementer kënne einfach a assoziativ sinn. Am éischte Fall sinn d'Elementer vum Array (mat enger vun den Zorte kënnt an der PHP) nummeréiert sinn 0, 1, 2, ... Am zweete Fall spezifizéiert de Programméierer säin eegene Index, deen oft "Schlëssel" genannt gëtt fir de gewënschten Wäert ze kréien.
$ ALine ["Fruucht"] = "orange"; // hei de PHP-Schlëssel vun der Array = "Fruucht"
Oder (sou datt alles richteg ass mat der Kodéierung vun der Säit an dem Code):
$ ALINE [iconv ('UTF-8', 'CP1251', "Fruit")] = iconv ('UTF-8', 'CP1251', "orange");
Wann Dir $ aLine op en neien Wert addt:
$ ALine [] = iconv ('UTF-8', 'CP1251', 'Peach');
$ ALINE [iconv ('UTF-8', 'CP1251', "Geméis")] = iconv ('UTF-8', 'CP1251', "Gurken");
$ ALine [] = iconv ('UTF-8', 'CP1251', 'Aubergine');
Als Resultat vum Zyklus:
Foreach ($ aLine als $ ck => $ cv) {
$ COne. = $ Ck. '='. $ Cv. '
';
}}
Wäerts kréien:
Fruit = Orange
0 = Peach
Geméis = Gurke
1 = Auberginen
De PHP-Schlëssel vum Array, wann d'Elemente "Peach" an "Aubergine" addéibar gëtt, gëtt ofgeschloss aus 0, a wann de Wäert vun deem selwechte Wäert entsprécht.
Elementer aus engem Array erausginn
Deen einfachste Wee fir e Element vun engem PHP-Array während senger Veraarbechtung ze entfernen. An dësem Fall, zum Beispill, als Resultat vun der Ausféierung vum Loop, gëtt d'ursprénglech Array gescannt, an e neie Benotzer gëtt erstallt, an deem onnéideg Elementer einfach net geschriwwe sinn.
Et ass méiglech ze handelen. Wann de leschte Beispill applizéiert gëtt:
Unset ($ aLine [0]); // d'Element vum PHP-Array ze entfernen
D 'Resultat:
Fruit = Orange
Geméis = Gurke
1 = Auberginen
Variante vun Manipulatiounselementer vun Arrays kënne vill gemaach ginn. Zum Beispill benotzt d'Funktioun: implode () an explodéieren (), kënnt Dir en PHP-Array an eng eenzeg begrenzt String schreiwen an zréck an en aneren Array zréckzéien - e weideren Separator.
Fir einfach e ganze Computer am PHP ze schécken, schreift einfach: net ($ aLine);
Dat ass genuch.
Sicht an engem Array
PHP enthält eng speziell Sich Funktioun array_keys (), array_values (), array_key_exists (), an in_array (), mä éier Dir décidéieren se ze benotzen, soll d'Méiglechkeet fir op seng eege an engem PHP vill ze Sich betruecht.
All Projet huet eng bestëmmte Sujet Beräich, entworf flamenden Ofgrond, virun allem wann en Deel vun der semantics dem Siwebiergen geplënnert an duerch eng Rei vu ganz spezifesch sënnvoll Schlësselen vertrueden. Dëst erlaabt Iech Är eegene Sichfunktiounen ze maachen, déi och sinn bedeitend sinn.
An PHP kann Dir Funktioune fonctionnéieren, deenen hiren Numm bei der Ausféierung vum Programm definéiert ass. E ganz prakteschen Beispill vun der PHPWord-Bibliothéik, wat Iech erlaabt ass MS MS Dokumenter ze liesen an ze erstellen:
$ Elementer = Array ('Text', 'Inline', 'TextRun', 'Link', 'PreserveText', 'TextBreak'
ListItem, ListItemRun, Table, Image, Objekt, Foussnot,
'Endnote', 'CheckBox', 'TextBox', 'Feld', 'Line');
$ Functions = Array ();
Fir ($ i = 0; $ i
}}
Dofir ass d'$ Funktiounsarkaréit déi Wäerter vun de $ Elementararray, dh d'Nimm vun den eigentleche Funktiounen, déi mat den realen Elementer vum Dokument arbeiten.
D'Funktioune vun $ $ [4] fir $ Elemente [4], Dir kënnt en ideale Sich a séier Resultat kréien.
Sortéieren aus
D'Aufgab vum Sortéierungsdatum ass wichteg, a PHP bitt verschidde Funktiounen fir dësen: Sort (), rsort (), asort (), ksort (), ... Ascending an Ofstieg Elementer bewahren déi zweet zwee Funktiounen d'Relatioun tëschent Schlëssel a Wäerter. Heiansdo mécht et Sënn fir d'Wäerter vun der Array onofhängeg ze vermëschen - shuffle ().
Benotz den PHP-Funktiounen fir Sortéierung, sollt een net vergiessen datt Elementer net nëmmen verschidden Zorte hunn, awer och net ganz natiirlecht Inhalt hunn. Als éischt: Dir musst ganz véiericht si fir d'Zeilen duerch russesch Bréiwer ze sortéieren, dat Datum ze sortéieren, wéi och Zuelen déi an anere Formater opgeholl ginn.
De beschte Wee fir eng Ideallösung selwer ze schreiwen, op mannst an der Skriptprüfphase, ass manuell Sortéierung. Et wäert hëllefen, ongefornegt Situatiounen ze antizéieren.
Schrëftgréisst
Mat den implode () a explodéieren () -Funioune kann d'Array einfach an eng Saach transforméiert ginn an zréck. Dëst erméiglecht Iech Daten an enger kompakten Optioun ze speichern an ze plangen an engem prakteschen Zoustand.
Een Array an der Rule mécht nei Méiglechkeete. Zum Beispill ass d'Aufgab fir de Schlësselwuert am Text ze erfuerder datt d'Suchergebnis net ëmmer méi hinzukommen.
$ CSrcLine = 'Text Text ListtemtemRun TextBox ListItem TextBox Check Box CheckBox TextBox Footnote';
$ ASrc = Explode ('', $ cSrcLine);
$ CDstLine = '';
Fir ($ i = 0; $ i
Wann (! Is_integer (strpos ($ cDstLine, $ cFind))) {
$ CDstLine. = $ CFind;
}}
}}
$ ADST = explodéieren ('] [', $ cDstLine);
$ COne = implode (';', $ aDst);
Dofir gëtt d'$ cOne Variabel nëmmen déi Wäerter vun der Quellestrong kritt, déi op der enger Säit stinn: "Text, ListItemRun; TextBox, ListItem; Check; Box; CheckBox; Footnote".
Russesch Sprooch an den Tasten an Bedeitungen
Et ass net empfehlens fir näischt mat der nationaler Kodéierung an syntakteschen Konstruktiounen ze benotzen. D'russesch Sprooch, wéi all aner Sproochen, deenen hir Charakteren no az iwwer AZ hinausgeet, ginn net zu Probleemer am Datebank, awer net an der Syntax vum Code. Heiansdo souguer eng einfache Aufgab am PHP "fir e Arrêtë fir e Drécker oder e Bildschierm erauszeginn" wäert zu "Krakozyabram" féieren an ëmmer méi oft de Skript ophalen.
PHP ass eng trei Sprooch a tolerant vu nationale Encodings, awer et gëtt vill Situatiounen, wann d'Aarbecht ze maache muss erem erfuerderlech erreecht ginn, well e Schlësselwäert op der richteger Plaz an am richtege Moment opkomm ass, wat net kann erkannt ginn.
PHP Syntax a Sproochegebitt
Denkt drun datt PHP Syntax eng Saach ass, awer d'Syntax vun dëser Syntax "beschäftegt" mat aner Applikatiounen, mat engem Betriebssystem, mat Hardwareoptiounen. Et gi vill Méiglechkeeten, et ass ni méiglech, alles ze präziséieren.
D'Regel "an de Code ass nëmmen Code, an am Input, an an der Ausgab ass et keng Informatioun" wäert hëllefen, on unforeseen Iwwerraschungen ze vermeiden. PHP-Wert am Array kann "russesch" sinn, awer de Schlëssel ass et syntaktesch korrekt net nëmmen vun de Positioune vun der Sprooch, awer och vun de Positiounen vun der Aarbechtswelt.
Similar articles
Trending Now