ComputersProgrammering

PHP: array in de array. Zoek in een PHP array

Programmeren - is de syntaxis en semantiek. De eerste wordt bepaald door de regels van de taal, en de tweede - de ervaring van de ontwikkelaar. Met betrekking tot arrays ontwikkelaar kan het onderwerp semantiek syntaxis laden. Het is geen object, maar niet in de traditionele zin van het array. PHP kunt u arrays van variabelen van verschillende types, met inbegrip van zichzelf te creëren. Een array element kan een functie zijn, is het mogelijk om een reeks reële algoritme werkelijke betekenis laden.

Syntax is stabiel, maar varieert van versie naar versie, en kunnen niet altijd compatibel zijn, zelfs van de bottom-up. Overdraagbaarheid van programma's - goed vergeten verworvenheden van de afgelopen eeuw. Semantiek is het ontwikkelen en kan niet altijd alleen om het even welke versie van een taal worden toegepast; Het is een traditie om een syntax te gebruiken om het feit dat de regels van de taal ons zelfs niet was te uiten. Op dit voorbeeld kan arrays meeste gemakkelijk te begrijpen.

bouwdozen

Een array in PHP is een handige syntax en functionaliteit. Dit soort gegevens kan worden beschreven op voorhand, maar het is vaak handig om arrays te maken op de vlieg als nodig is.

public $ anone = array (); // array wordt beschreven en bevat niets

public $ AFACT = array ( 'avocado', "peach", "cherry"); // deze array van drie elementen

Maak een array van het verificatieproces van alle voorwaarden:

$ CSrcLine = 'touwtje geanalyseerde gegevens';

voor ($ i = 0; i <$ 13, $ i ++) {

$ CUserLine = inputUserLine (); // ingang iets

if (checkFunc ($ cSrcLine, $ cUserLine) {

$ Aresult [] = 'Ja'; // voeg een PHP array

} Else {

$ Aresult [] = 'Nee';

}

}

Door het uitvoeren van dit voorbeeld zal een array van 13 elementen waarvan de waarden zijn alleen 'ja' of 'nee' regel te maken. Elementen indices van 0 tot 12. Hetzelfde effect kan worden verkregen door vooraf opgenomen "toekomst" PHP-array een tekenreeks:

$ CFutureArray = '';

voor ($ i = 0; i <$ 13, $ i ++) {

$ CUserLine = inputUserLine (); // ingang iets

if ($ i> 0) {$ cFutureArray = '|' .; }

if (checkFunc ($ cSrcLine, $ cUserLine) {$ cFutureArray = 'Ja' .;

} Else {$ cFutureArray = 'Nee' .; }

}

$ Aresult = explode ( '|', $ cFutureArray);

multidimensionale arrays

Veel content management systemen (SMS) met behulp van arrays "op grote schaal." Aan de ene kant is het is een goede gewoonte, aan de andere kant is het moeilijk toe te passen. Zelfs als de auteur is duidelijk doctrine "PHP-array in de array", dan moet het niet worden misbruikt: niet alleen de ontwikkelaar zal moeten wennen aan de complexe notatie. Vaak, na een tijdje de auteur zelf lang zal herinneren, wat ik in eerste instantie schreef:

terug array (

'View_manager' => array (41, 'template_path_stack' => array (__DIR__. '/../view'),

'Router' => array ( 'routes' => array ( 'SayHello' => array (

'Type' => 'Zend \ Mvc \ router \ Http \ letterlijke',

'Opties' => array ( 'route' => '/ SayHello', 'standaard' => array (

'Controller' => 'Helloworld \ Controller \ Index', 'actie' => 'index',)))))

'Controllers' => array ( 'invokables' => array (

'Helloworld \ Controller \ Index' => 'Helloworld \ Controller \ IndexController'))

);

Dit is een voorbeeld praktijk «PHP-array in de reeks" van ZF 2. Niet te inspireren op het eerste, maar het werkt, en misschien maakt deze succesvolle framework (bijvoorbeeld van de module ZendSkeletonApplication / module / Helloworld / config / module.config.php).

Array - een belangrijke datastructuur tijdens het ontwerp en de ontwikkeling. Zijn multidimensionale versie was ooit populair, maar na verloop van tijd heeft behoefte aan arrays van maximaal twee of drie dimensies gebleven. Het is eenvoudiger en intuïtiever, maar in termen van professionaliteit wanneer er iets begint te vermenigvuldigen, dus iets in de formulering van het probleem, of de code is niet het geval.

Eenvoudig, toegankelijk en begrijpelijk

Het creëren van in php array in de array, is het het beste om te worden beperkt tot twee of drie niveaus. Ondanks de stabiliteit en betrouwbaarheid van PHP maakt fouten bij de verwerking van syntaxis. Met deze je kan verdragen met een goede code-editor, gewend aan haakjes en komma nauwkeurig te tellen. Echter, PHP geen controle over de soorten gegevens (dit is karma moderne programmeren) en laat de ontwikkelaar om semantische fouten te oefenen.

Het recht om de types van variabelen of hun eigen ideeën van de transformatie semantiek syntaxis controle - vaak een luxe. Dit verlies rate script, code leesbaarheid, gemak ... want codering is altijd van essentieel belang.

PHP heeft een significant negatieve eigenschap: het script hangt alleen in het geval van onzekerheid. Niet alle debuggers omgaan met onvoorziene gebeurtenissen, en veel hangt af van de ervaring en intuïtie van de ontwikkelaar. Hoe eenvoudiger algoritme dan gestructureerde informatie beter toegankelijk, hoe meer kans om een fout te vinden of niet mogelijk is.

Kenmerkend is dat wanneer de eerste gegevensmatrices opties werden aangeboden in de vorm structuren - een onhandige poging om iets uit verschillende soorten data creëren. De eerste overleefde en kreeg een krachtige nieuwe syntax, de tweede ging de geschiedenis in.

Eenvoudig en associatieve arrays

Registreren van een tweedimensionale matrix - is een paar steunen "[" en "]", bijvoorbeeld: $ aSrcData [1] [2] betekent toegang tot een nummer [2] van de matrix [1], ingang aan de array $ aSrcData. In PHP is er geen verplichting om op voorhand melden de gegevens. Lyuboyu verklaarde informatie kan altijd worden gecontroleerd op het bestaan.

Zeer effectief om iets te creëren alleen wanneer het nodig is, in de vorm waarin het nodig is, en vernietigd wanneer het niet langer nodig is. Gebruikt als sleutel (index) betekenisvolle namen kunnen worden bereid uitleesbare structuur betekenis in de context van de huidige locatie van het algoritme:

$ AAnketa [ 'name'] = 'Ivanov';
$ AAnketa [ 'leeftijd'] = 42;
$ AAnketa [ 'werk'] = 'directeur';
$ AAnketa [ 'actieve'] = true;
$ Atable [] = $ aAnketa;

$ AAnketa [ 'name'] = 'Petrov';
$ AAnketa [ 'leeftijd'] = 34;
$ AAnketa [ 'werk'] = 'Manager';
$ AAnketa [ 'actieve'] = true;
$ Atable [] = $ aAnketa;

$ AAnketa [ 'name'] = 'Afanasiev';
$ AAnketa [ 'leeftijd'] = 28;
$ AAnketa [ 'werk'] = 'Work';
$ AAnketa [ 'actieve'] = false;
$ Atable [] = $ aAnketa;

Sone $ = imploderen. ( "", $ Atable [1]). '
'; // tweede PHP-array naar een string
. $ Sone = $ Atable [1] [ 'werk']; // bellen om een element van de tweede array

Het resultaat van dit voorbeeld (eerste stelsel - de gebruikelijke toetsen daarin begint met 0, de tweede array - associatieve er vier toetsen: 'Naam', 'leeftijd', 'werk', 'actief'):

$ Sone = 'Petrov; 34; manager; 1
Manager ';

In dit eenvoudige voorbeeld, kan men zien hoe gevestigde profiel kan worden toegepast op alle medewerkers. U kunt een array van de werknemers met indices van personeel nummers te maken en indien nodig een bepaalde werknemer te zijn, selecteert u deze dan op de personeelsnummer.

Als uw organisatie heeft afdelingen of seizoensgebonden werk, of als u wilt afzonderlijk werkende gepensioneerden toe te wijzen ... ontwerp "PHP-array in de array" erg handig, maar je moet nooit betrokken raken bij de dimensie. Twee of drie dimensies - de limiet voor oplossingen.

Toetsen voor het werken met arrays

Indien vóór telde, hoe dingen werken, in de afgelopen jaren, de traditie van de binaire tijd, toen een programmeur wilde precies weten hoe de array-elementen worden opgeslagen, en wilde hen hebben directe toegang, helemaal vergeten. Er was veel karakter coderingen, welke stuk voor stuk in het geheugen is niet een byte. Het woord "bit" is nu alleen mogelijk in een bit-search operaties te ontmoeten, maar de zoektocht naar in een PHP array - is een aparte kwestie. Toegang tot de elementen kunnen eenvoudig en associatief. In het eerste geval zijn de arrayelementen (met een van de beschikbare types PHP) zijn genummerd 0, 1, 2, ... In het tweede geval, de programmeur specificeert eigen index, vaak aangeduid als een "sleutel" om naar de gewenste waarde.

$ ALINE [ "vruchten"] = "orange"; // hier PHP-key-array = "vruchten"

of (alles correct en in overeenstemming met de code pagina encoding zijn):

$ Aline [iconv ( 'UTF-8', 'CP1251', "fruit")] = iconv ( 'UTF-8', 'CP1251', "oranje");

Wanneer u toevoegt aan de array $ ALINE nieuwe waarde:

$ Aline [] = iconv ( 'UTF-8', 'CP1251', 'peach');
$ Aline [iconv ( 'UTF-8', 'CP1251', "vegetable")] = iconv ( 'UTF-8', 'CP1251', "komkommer");
$ Aline [] = iconv ( 'UTF-8', 'CP1251', 'aubergine');

als gevolg van de lus:

foreach ($ Aline als $ ck => $ cv) {
$ Kegel. = $ Ck. '='. $ Cv. '
';
}

Het wordt verkregen door:

oranje fruit =
0 = perzik
= Plantaardige komkommer
1 = aubergine

PHP-toetsenreeks bij het toevoegen van items 'peach' en 'aubergine' sequentieel gevormd uit 0, en bij het opgeven van de waarde gelijk aan deze waarde.

de elementen van de matrix verwijderen

De eenvoudigste manier om de PHP array-element tijdens de verwerking te verwijderen. In dit geval, bijvoorbeeld, als gevolg van de uitvoeringscyclus de bronreeks wordt bekeken, en vormden een nieuwe, die gewoon overbodig elementen zijn niet opgenomen.

Je kunt makkelijker te doen. Als het laatste voorbeeld te gebruiken:

unset ($ Aline [0]); // verwijdert de PHP array element

het resultaat zal zijn:

oranje fruit =
= Plantaardige komkommer
1 = aubergine

Opties voor het manipuleren van de array-elementen kan worden geconstrueerd set. Bijvoorbeeld met de functie: imploderen () en exploderen (), kan worden geschreven in PHP-rij array met deler, gedemonteerd en weer in een andere array - door een andere scheider.

Om gewoon verwijderen van een PHP array als een geheel, gewoon schrijven: unset ($ Aline);

Dat is genoeg.

Zoek in de array

PHP bevat een speciale zoekfunctie array_keys (), array_values (), array_key_exists (), en in_array (), maar voordat u besluit om ze te gebruiken, moet de mogelijkheid om te zoeken naar een PHP array op zijn eigen rekening.

Elk project heeft een bepaald gebied, ontworpen arrays, in het bijzonder wanneer een deel van de semantiek verplaatst naar de syntax en vertegenwoordigd door een reeks van zeer specifieke betekenis toetsen. Hiermee kunt u uw eigen zoekfunctie, die ook zinvol kunnen worden beschreven uit te voeren.

In PHP, kunt u de functie, waarvan de naam wordt bepaald tijdens de uitvoering van het programma noemen. Een zeer praktisch voorbeeld van PHPWord bibliotheek die kunt u lezen en schrijven MS Word-documenten:

$ Elements = array ( 'Tekst', 'Inline', 'TextRun', 'Link', 'PreserveText', 'TextBreak',
'ListItem', 'ListItemRun', 'Tafel', 'Image', 'Object', 'Voetnoot',
'Endnote', 'CheckBox', 'TextBox', 'Field', 'Line');

Functies $ = array ();

voor ($ i = 0; $ i $ Functions [$ i] = 'toevoegen'. $ Elements [$ i];
}

Als gevolg hiervan, een scala aan functies De $ ontvangen $ waarden array-elementen, dat wil zeggen de namen van de werkelijke functies die het werk uit te voeren met echte elementen van het document.

Bellen voor $ elementen [4] functie $ functies [4], kunt u de perfecte zoeken en snelle resultaten te krijgen.

Sorteer artikelen

data sorteertaak belangrijk en PHP biedt verschillende functies voor: sort (), rsort (), asort (), ksort (), ... Klimmen en dalen elementen van de laatste twee functies behouden relaties tussen sleutels en waarden. Soms is het zinvol om de waarden van de matrix te mengen in willekeurige volgorde - shuffle ().

Met behulp van de PHP-functies om te sorteren, moeten we niet vergeten dat de leden niet alleen een ander type, maar niet helemaal natuurlijk gehalte kan hebben. Het eerste wat je moet heel voorzichtig zijn over het sorteren strings met Russische letters, sorteren data en aantallen, die in verschillende formaten worden geschreven zijn.

De beste manier om uw eigen ideale oplossing te schrijven, in ieder geval in de fase van het testen van het script - is een handmatig sorteren. Het zal helpen eventualiteiten.

String arrays

Met functies imploderen () en exploderen () array kan eenvoudig worden omgezet in een string en terug te krijgen. Hiermee kunt u gegevens op te slaan in een compacte representatie en implementeren ze in een comfortabele toestand als dat nodig is.

Array, met uitzicht op de lijn opent nieuwe mogelijkheden. Bijvoorbeeld, de taak van het zoeken naar trefwoorden in de tekst vereist dat de bleken niet opnieuw werd toegevoegd.

$ CSrcLine = 'Text ListItemRun TextBox ListItem TextBox Selectievakje CheckBox TextBox Footnote';

$ Asrc = explode ( '', $ cSrcLine);
$ CDstLine = '';

voor ($ i = 0; $ i $ CFIND = '['. $ Asrc [$ i]. ']';
if (! is_integer (strpos ($ cDstLine, $ CFIND))) {
. $ CDstLine = $ CFIND;
}
}
$ ADst = explode ( '] [' $ cDstLine);

$ Kegel = implode ( ';', $ aDst);

Als gevolg hiervan, variabele $ CONE ontvangt alleen de waarden van de oorspronkelijke lijnen die er eenmaal: "Text, ListItemRun, TextBox, ListItem, Check, Box, checkbox; Voetnoot".

Russische taal in de sleutels en waarden

Het is niet aan te raden om iets dat verbonden is met de nationale karakter sets in syntactische constructies gebruiken. Russische taal, evenals alle andere talen, de personages waarvan voorbij az, zal geen probleem vormen, die in de database, maar niet in de code syntax. Soms zelfs een eenvoudige taak voor PHP «brengen een array van de printer of op het scherm" zou leiden tot 'wartaal' en vaak gewoon stoppen met het script.

PHP - taal loyaal en tolerant ten opzichte van het nationale karakter, maar er zijn veel situaties waarin de hoeveelheid werk verricht heeft om opnieuw te doen, alleen maar omdat op de juiste plaats op het juiste moment zal pop-up de sleutel, identificeren welke niet mogelijk zal zijn.

PHP syntax en taalomgeving

Houd in gedachten dat PHP syntax - deze, maar het ontwerp van deze syntax "deal" met andere applicaties, het besturingssysteem met de hardware opties. Er zijn vele opties, alle voorzien zal nooit mogelijk zijn.

Regel "in de code is er slechts de code en bij de ingang, binnen en aan de uitgang er enige informatie" zal helpen voorkomen onverwachte verrassingen. PHP-waarde in de array kan "Russische", maar de sleutel tot het is syntactisch correct, niet alleen vanuit het standpunt van de taal, maar ook in termen van zijn werkomgeving te zijn.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 nl.atomiyme.com. Theme powered by WordPress.