Array PHP in array: un esempio

28/05/2019

PHP è un linguaggio di programmazione moderno che è popolare e ampiamente utilizzato. Come altri, ha sintassi e semantica. Come si suppone strumenti dalla sfera delle tecnologie di Internet: in PHP, qualsiasi variabile può cambiare il suo tipo come e quando lo sviluppatore lo desidera.

Array Php in array

Ai tempi della statica classica, specialmente quando tutte le variabili dovevano essere descritte in anticipo, i programmatori non pensavano nemmeno di usare una lingua al di fuori della sua sintassi .

Oggi a Array Php senza un'indicazione esplicita del tipo dei suoi elementi (incluso un array o un oggetto con un livello di nidificazione illimitato) è una realtà , quindi: la sintassi e la semantica della lingua possono essere interpretate a tua discrezione.

Concetti di base

Dato che non è necessario descrivere nulla, una matrice può apparire in uno spazio vuoto:

  • $ aMassa [] = 'il primo valore è la stringa';
  • $ aMassa [] = 123; // il secondo valore è un numero.

In altre parole, per aggiungere a un array in PHP , non è affatto necessario preordinare questa azione con una costruzione descrittiva:

  • $a_ins = array (); pubblico $ a_ins = array (); //

можно сразу писать: questo è un array, puoi immediatamente scrivere:

  • -> a_ins [] = new scDocxS_tr( $cLine , $oDocx ) $ this -> a_ins [] = new scDocxS_tr ( $ cLine , $ oDocx )

e tutto sarà assolutamente corretto.

Tuttavia, in PHP, l'eliminazione di un elemento dell'array equivale all'eliminazione di una variabile.

  • unset ($ aMasse ['elementName']); // cancella la matrice per chiave;
  • unset ($ aMassa [1]); // cancella il secondo elemento dell'array;
  • unset ($ aMassa); // cancella l'intero array.

Questo è piuttosto insolito, simile all'eliminazione di una variabile regolare.

Array regolari e associativi

Secondo la sintassi PHP: le chiavi di array sono sempre una sequenza di numeri interi. Questa affermazione è sempre vera, ma non è sempre vero che questa sequenza è continua.

Tasti di array PHP

Quando un array associativo in PHP è diventato un'abitudine comune, la relazione con le chiavi non è cambiata, solo gli elementi che hanno ricevuto la chiave designata dal programmatore (qualsiasi cosa tranne un array o un oggetto) hanno cominciato ad avere:

  • ordinaria chiave in ordine;
  • chiave specifica per un particolare elemento dell'array.

La lingua non limita il programmatore nel numero di elementi e dimensioni, ma in entrambi i casi si dovrebbe rispettare il numero visibile e compreso. Il mondo è molto vario, ma la progettazione di matrici di più di due dimensioni è una lezione con semantica molto dubbia. Un orientamento decente nel numero di elementi è di mille o due, ma non di un milione o miliardi.

Osservazione "antimassica"

Naturalmente, è possibile trovare tali compiti, ma più spesso ci sono tali soluzioni quando il programma assomiglia molto ai mostri su PL / 1 o Fortran, che rendono il processore di grandi computer sovietici della serie EC / IBM intorpidito (blocco).

Array PHP a stringa

Puoi sempre andare d'accordo con algoritmi semplici e modesti, anche quando devi calcolare la traiettoria di volo per Urano o Nettuno. Vola per molto tempo, il che è complicato da algoritmi mostruosi armati di array spaziali.

Gli estremi nella programmazione sono sempre pericolosi, la memoria può finire nel momento più inaspettato, e la logica di PHP non controlla il lavoro con la memoria per molto tempo, a un esame più ravvicinato è possibile rilevare errori di calcolo in tutte le possibili situazioni.

Array e stringhe

Il mondo è sempre simboli, cioè, nel contesto di un linguaggio di programmazione, stringhe. Anche quando il programma è interamente dedicato ai calcoli matematici, numeri e numeri sono tutti gli stessi caratteri.

Accendi Array PHP a stringa - Facile, proprio come indietro. Si può anche dire che questa trasformazione è diventata una sorta di costruzione, non ancora incarnata nella sintassi del linguaggio, ma già presentata come esperienza dalle funzioni explode () e implode ().

esplode () esempio di utilizzo

Ecco la sfida:

  • = $oBase ->iLineSel( 'd_name, d_work_folder, d_load' , 'rm_documents' , ... $ cSel = $ oBase -> iLineSel ( 'd_name, d_work_folder, d_load' , 'rm_documents' , ...

crea una stringa:

  • "FileName | WorkingFolder | FlagLoad"

che è il design:

  • = explode ( '|' , $cSel ) $ aSel = esplode ( '|' , $ cSel )

si trasforma in un array:

  • $ aSel [0] = "FileName";
  • $ aSel [1] = "Cartella di lavoro";
  • $ aSel [2] = "Flag Download";

Molto comodo e pratico. La funzione inversa implode () tiene insieme tutti gli elementi di un array in una riga, senza distinguere tra valori stringa e numeri. Ci saranno difficoltà con i valori di altri tipi (oggetti, matrici interne), ma possono essere risolti.

PHP: array in array

La pratica dell'utilizzo di matrici ha tre punti caratteristici. Un array normale (gli elementi sono disponibili tramite i tasti di lingua), un array associativo (gli elementi sono disponibili per i tasti del programmatore) e qualsiasi opzione per le chiavi, ma gli oggetti sono valori, nel caso semplice, solo altri array.

Matrice associativa Php

Spesso è necessario utilizzare un array su un array PHP. In generale, un array (specialmente quando è associativo) può essere visto come una via d'uscita dalla sintassi di un linguaggio: se una variabile è solo un valore alla volta, allora un array è un insieme di valori.

Un array associativo è una massa di variabili, i cui nomi e valori sono formati durante l'operazione del programma, e quindi possono essere utilizzati secondo l'idea del programmatore, e non la sintassi della lingua. Quindi la chiave determina l'uso del valore. È importante capire: questa non è una chiave per un valore, ma "usa" un valore. Ad esempio, nella costruzione dell'interruttore (array [chiave]) {case 'x1': func1 (); case 'x2': func2 (); ...}.

Tuttavia, in PHP, un array in un array sarà sempre strettamente legato a qualsiasi caso d'uso, poiché altri costrutti (operatori ed espressioni) non sono per niente "massicci". In altre parole, dando all'array il suo significato, dovrà sempre essere specificato durante l'uso.

La situazione cambia drasticamente quando non ci sono matrici, ma oggetti nell'array.

Matrici di oggetti: dinamiche

Quando un array contiene oggetti come elementi, questo è un modo molto pratico per andare oltre l'uso rigoroso (cioè "oltre" la sintassi).

Php rimuove l'elemento dell'array

Un oggetto è una struttura di dati più avanzata di una matrice. Ogni oggetto può includere un numero di matrici. A differenza di quest'ultimo, l'oggetto ha anche metodi che sono direttamente correlati ad esso e contengono le funzionalità appropriate. I metodi collegano i contenuti interni di un oggetto con eventi esterni, funzioni e altri oggetti.

Gli oggetti sono caratterizzati da ereditarietà, l'esecuzione del funzionale, sia dall'alto verso il basso che da dietro, tutto dipende dalla logica implementata dal programmatore. Ma in ogni caso, i metodi delle funzioni degli oggetti possono essere usati al posto di qualsiasi struttura sintattica [if () {} else {}; switch () {case '': ... break; caso '': ... pausa; }; while () {}], possono anche funzionare come operatori di assegnazione e formare espressioni eseguibili.

Grazie all'ereditarietà e al polimorfismo, che è implementato abbastanza pienamente, è possibile modificare la sintassi PHP "array in array" sulla propria versione "array attraverso la logica dei suoi oggetti". Quest'ultimo significa un'idea estremamente semplice, ma estremamente efficace. Creazione di un array di oggetti PHP: aggiungi a array = aggiungi elemento astratto.

PHP aggiunto alla matrice

Oggetti astratti e reali

L'astrazione nella programmazione orientata agli oggetti è piuttosto un tributo alle tradizioni che hanno cambiato il volto della programmazione moderna. In effetti, l'oggetto iniziale è lontano dall'astratto e deve descrivere in modo affidabile tutto ciò che i suoi discendenti dovrebbero avere. Ma dal momento che l'implementazione OOP è zoppa non solo in PHP, di solito è difficile cavarsela con un elemento astratto.

Quasi sempre è necessario avere un elemento astratto e un sistema di elementi astratti. Non è sempre possibile ereditare un sistema di oggetti da un oggetto, così come non tutte le attività consentono un sistema di oggetti come un oggetto iniziale.

In generale, è possibile che, e un altro, la domanda è che in ogni caso particolare, uno dovrebbe essere guidato dal buon senso. L'OLP è in una fase di rapido sviluppo, ha molti punti bianchi e nuove idee. Pertanto, combinare estemporanea, intuizione e buon senso è l'unica soluzione sensata.

Esempio "Documenti corretti"

, но дала возможность разрабатывать сайты, которые легко манипулируют документами MS Word: могут читать, обрабатывать и создавать их. La libreria PhpOfficePhpWord non è diventata popolare in modo categorico , ma ha dato l'opportunità di sviluppare siti Web che manipolano facilmente i documenti di MS Word: possono leggerli, elaborarli e crearli.

Non si può dire che la biblioteca sia facile da imparare, ma c'è sicuramente un'area per il suo uso efficace. Le seguenti schermate del codice mostrano come è possibile descrivere una serie di matrici e riempirle.

Un esempio  Descrizione dell'array

Nella fase iniziale, il riempimento degli array è il seguente: l'array $ aSel viene letto dalle tabelle del database, convertito in un array PHP in una stringa, l'azione si verifica su ciascun array utilizzando la funzione explode ().

Un esempio  Compilazione di matrici

La descrizione è una forma lunga e tangibile di applicazione di array a un serio problema pratico.

Le idee sull'uso di matrici e OOP descritte in precedenza sono state espresse nell'analisi del corpo del documento, che, come è noto, è costruito secondo lo standard OOXML. Per risolvere questo problema, è semplicemente impossibile prevedere la variazione degli array negli array per tutte le varianti del contenuto del documento, ma è molto possibile prevedere un singolo array di documenti.

Per designare in questo array come elemento solo un paragrafo o una tabella è anche disponibile, beh, e quindi la questione della tecnologia: il paragrafo è diviso in stili e testi e la tabella - nelle celle in cui si trovano i paragrafi.

Questa soluzione funziona, è accessibile e tangibile. Non richiede di tenere in memoria numerosi array di grandi dimensioni e non costringe il design a pianificare la struttura degli array, sia durante la lettura di un documento sia quando viene creato.

Semplice, pratico, conveniente.