Array in PHP. Apprendimento degli array in PHP Array multidimensionali Php con indice numerico

La lezione coprirà le possibilità di lavorare con gli array in PHP, dichiarare un array, tipi di array: array multidimensionali e associativi

  1. Array con indici numerici
  2. $frutta="mela"; $frutti="pera"; $frutta="arancia"; $frutta="albicocca";

    Questa opzione per l'inizializzazione dell'array non è praticamente utilizzata oggi. Viene utilizzata la seguente opzione per lavorare con gli array:

  3. Matrice associativa
  4. Questa opzione per creare un array utilizza un oggetto array:

    $frutti = array(1 => "mela", 2 => "pera", 3 => "arancia", 4 => "albicocca"); // A partire da Versioni PHP 5.4 $frutti = array[ 1 => "mela", 2 => "pera", 3 => "arancia", 4 => "albicocca" ];

    Accesso agli elementi dell'array

    1 2 3 4 5 6 7 8 $frutti[0] = "mela"; $frutti[1] = "pera";$frutti[2] = "arancia";
    $frutti[3] = "albicocca"; eco"Il primo elemento dell'array è "
    $frutti[3] = "albicocca"; .$frutta[0]. "
    " ;

    "; eco
    "Il secondo elemento dell'array è "
    .
    ";

    $frutti[1]. "

    "Il terzo elemento dell'array è ". $frutti[2]. ")

    $frutta="mela"; $frutti="pera"; $frutta="arancia"; $frutta="albicocca"; echo "Il primo elemento dell'array è ". $frutta."

    "; echo "Il secondo elemento dell'array è ". $frutti.""; echo "Il terzo elemento dell'array è ". $frutti."

    Il risultato dell'esecuzione del programma sarà:


    ";

    Importante:
    L'indice di un elemento in un array associativo può non essere un numero, ma una parola (tipo
    corda
    ";

    Diamo un'occhiata ad un esempio:

    "Il terzo elemento dell'array è " Esempio:

    Crea un array student con i valori del nome, del cognome e dell'età degli studenti. Visualizza i valori degli elementi dell'array

    $studente = array("Nome" => Giovanni, "Cognome" => Rossi, "Età" => 20); echo "nome utente" . $studente["Nome"] . " $studente["Nome"] = "Giovanni"; $studente["Cognome"] = "Rossi"; $studente["Età"] = 20; echo "nome utente" . $studente["Nome"] . "("; echo "cognome dell'utente " . $studente["Cognome"] . "):

    "; echo "età dell'utente " . $studente["Età"] . "

    Risultato:

    In questo caso sarà l’interprete stesso ad assegnare loro degli indici numerici, a partire da 0

    Esempio conversioni di tipo e riscrittura degli elementi.
    Da notare l'uso della procedura var_dump()

    1 2 3 4 5 6 7 8 9 "a" , "1" => "b" , 2 => "c" , 2 => "d" , ) ;

    var_dump ($mio_array) ;

    Diamo un'occhiata ad un esempio:

    ?>

    Esempio"a", "1"=> ​​"b", 2 => "c", 2 => "d",); var_dump($mio_array); ?> Array(3) ( => stringa(1) "a" => stringa(1) "b" => stringa(1) "d" ) utilizzo

    1 2 3 4 5 6 7 8 9 10 11 12 matrice multidimensionale

    e organizzare l'accesso ai suoi elementi

    Diamo un'occhiata ad un esempio:

    "1" , 2 => 2 , "multi" => array ( "1_1" => "1_1" ) ) ;

    "; echo "Il secondo elemento dell'array è ". $frutti." var_dump($array_odnom["primo"]);


    var_dump($array_odnom[2]);
    1 2 3 4 5 6 7 8 9 10 11 12 var_dump($array_odnom["multi"]["1_1"]);

    ?>

    "1", 2 => 2, "multi" => array("1_1" => "1_1")); var_dump($array_odnom ["primo"]); var_dump($array_odnom); var_dump($array_odnom ["multi"]["1_1"]); ?> String(1) "1" int(2) string(3) "1_1"



    creare un array bidimensionale con dimensioni 3 x 2. Riempirlo con i valori per la prima riga: “1_1”, “1_2”, “1_3”; per la seconda riga: “2_1”, “2_2”, “2_3”. Visualizza il primo elemento di un array
    Esecuzione:

    $array_odnom = array ( 1 => array ( 1 => "1_1" , 2 => "1_2" , 3 => "1_3" ) , 2 => array ( 1 => "2_1" , 2 => "2_2" , 3 => "2_3" ), ) ;

    echo $array_odnom [1] [1];
    $array_odnom = array(1 => array(1 => "1_1", 2 => "1_2", 3 => "1_3"), 2 => array(1 => "2_1", 2 => "2_2" , 3 => "2_3")),); echo $array_odnom;
    Lavoro php2_1:

    crea una matrice bidimensionale 3 x 3: l'angolo superiore sinistro della tavola pitagorica (1, 2, 3; 4, 6, 8 ...)
    Lavoro di laboratorio: Supponiamo che tu abbia una sorta di annuncio pubblicitario e diverse persone a cui devi inviare questo annuncio. Per fare ciò, crei un modello con il contenuto dell'annuncio, all'interno del quale sono presenti una serie di parametri variabili: una serie di nomi di persone e una serie di eventi. Visualizza una versione dell'annuncio finale sullo schermo. Per definire gli array, utilizzare un array associativo. Utilizza il modello di annuncio e concentrati sui colori: .
    Rosso – array.
    Marrone – variabile numerica.


    Blu – costante.
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 Caro Ivan Ivanovic! Ti invitiamo a giorno) ; porte aperte Data dell'evento: 12 maggio. I migliori saluti, Vasily. Completa il codice: // dichiarazione costante define("SEGNO" , "Cordiali saluti, Vasya"
    "
    // array per i nomi dei destinatari

    // dichiarazione di una costante define("SIGN","Saluti, Vasya"); // array per i nomi dei destinatari $nomi = array(...); // array per eventi $eventi = array("op_doors" => "open day", "vistavka" => "fiera", ...); $str = "Cari $nomi!
    "; $str.= ...; $str.= ...; echo ...;

In questo articolo, continuiamo ad apprendere le basi di PHP e veniamo introdotti agli array. Separatamente, utilizzando esempi, esamineremo la creazione di un array regolare, quindi passeremo senza problemi agli array associativi e multidimensionali. Il materiale presentato sarà sufficiente per comprendere saldamente la parte successiva. Nozioni di base su PHP, vale a dire gli array PHP.

Array PHP – Cosa sono gli array PHP e come vengono creati. Array semplici (indice).

Gli array in PHP svolgono un ruolo molto importante e sono ampiamente utilizzati durante la creazione di siti Web. Un array è una cosiddetta variabile (), che può contenere diversi valori disponibili in determinati indici. Per accedere alle informazioni sull'array, è sufficiente specificare il nome dell'array e l'indice della cella dati. Per chiarezza, fornirò un esempio della struttura di un semplice array di indici e di una variabile.

Come puoi vedere dall'immagine, la differenza tra un array e una variabile non è molto grande. Una variabile può assumere un solo valore, ma un array può avere più valori contemporaneamente. Inoltre, per estrarre informazioni da un array è sufficiente indicare semplicemente il nome dell'array e l'indice per il quale sono disponibili le informazioni. Per una comprensione più completa, guardiamo un esempio e creiamo un array, quindi estraiamo le informazioni da esso e le visualizziamo sullo schermo.

/*Creazione di un array*/ $nome = "A"; $nome = "B"; $nome = "C"; $nome = "D"; $nome = "E"; /*Mostra sullo schermo il valore della cella dell'array con indice 2*/ echo $nome;

Nell'esempio sopra, possiamo vedere che creiamo prima il primo elemento dell'array con indice "0" e gli assegniamo il valore "A". Quindi creiamo i restanti 4 elementi dell'array allo stesso modo. Successivamente, utilizzando operatore eco visualizziamo sullo schermo il terzo elemento dell'array. Come hai già notato, per visualizzare un elemento dell'array sullo schermo, devi specificare il nome dell'array e l'indice della cella con i dati.

Oltre al metodo sopra descritto, è possibile creare un array in PHP in un altro modo. La sua essenza è usare parola chiave vettore. Per chiarezza, esaminiamo lo stesso esempio di creazione di un array, ma in un modo diverso.

$nome = array (0 => "A", 1 => "B", 2 => "C", 3 => "D", 4 => "E");

Anche questo metodo è molto semplice. Per creare un array, creiamo una variabile $nome, quindi inseriamo un segno di assegnazione “=" e indichiamo che si tratta di un array. Successivamente, creiamo celle e le riempiamo di dati. Questo viene fatto specificando un indice e assegnandogli un valore utilizzando i segni "=" e ">". Cioè “0 => “A”” significa che assegniamo il valore “A” alla cella con indice “0”. È un po’ imbarazzante spiegare questo argomento nel testo, ma penso che tu capisca di cosa stiamo parlando.

Vorrei anche notare immediatamente che se l'indice del primo elemento dell'array creato è zero, non è necessario inserire gli indici. In questo caso PHP aggiungerà automaticamente gli indici partendo da zero. Tutto questo sarà simile a questo.

Prima opzione per creare array in PHP

$nome = "A"; $nome = "B"; $nome = "C"; $nome = "D"; $nome = "E";

Seconda opzione per creare array in PHP

$nome = array("A", "B", "C", "D", "E");

Array associativi PHP

Gli array associativi sono un altro tipo di array PHP. La differenza tra array associativi e array semplici sono gli indici. Se negli array semplici questi erano indici numerici, negli array associativi questi indici sono testo. Ciò rende gli array associativi più organizzati e significativi. Per questo motivo sono più utilizzati dei semplici indici.

Gli array associativi vengono creati in modo simile. Consideriamo 2 metodi principali.

Il primo modo per creare un array associativo.

$colore["bianco"] = "bianco"; $colore["nero"] = "nero"; $colore["rosso"] = "rosso"; $colore["verde"] = "verde"; $colore["blu"] = "blu";

Il secondo modo per creare un array associativo.

$colore = array("bianco" => "bianco", "nero" => "nero", "rosso" => "rosso", "verde" => "verde", "blu" => "blu") ;

Come puoi vedere, la procedura per creare un array associativo è identica alla procedura per crearne uno indice. Per visualizzare un elemento dell'array sullo schermo, possiamo usare il comando . Consideriamo due metodi: il solito e l'utilizzo dell'ancoraggio variabile.

Echo "Colore selezionato - $colore"; echo "Il colore ".$color["rosso"]." è selezionato";

Come hai già notato, nel primo caso l'indice della cella non viene preso in considerazione virgolette doppie. Questa regola dovrebbe essere ricordata immediatamente per evitare errori in futuro. Se utilizzi il primo metodo e desideri visualizzare un elemento dell'array senza unire le variabili, l'indice non viene racchiuso tra virgolette. Nel secondo esempio, come puoi vedere, tutto è scritto come al solito e le virgolette non vengono rimosse.

Personalmente preferisco il primo metodo perché, a mio avviso, è molto più semplice del secondo e richiede meno passaggi per l'implementazione. Sta però a te scegliere quale metodo utilizzare.

Passiamo ora alla parte finale dell'articolo e osserviamo gli array multidimensionali PHP.

Array multidimensionali PHP

Un array multidimensionale è un array che contiene un altro array. Per chiarezza, implementiamo un array multidimensionale utilizzando come esempio tre tipi di computer. Nel nostro caso lo è computer da tavolo, laptop e netbook. Le caratteristiche saranno il volume RAM, volume disco rigido e la frequenza del processore. Schematicamente multidimensionale Array PHP per risolvere questo problema potrebbe assomigliare a questo.

Puoi creare un array multidimensionale, come tutti gli altri, in diversi modi. Per risparmiare tempo, prenderemo in considerazione solo il secondo metodo. Penso che tu abbia già memorizzato come vengono creati gli array in PHP e non dovresti avere problemi con esso.

$massiv["PC desktop"] = array ("RAM" => "4096", "HDD" => "500", "GC" => "3"); $massiv["Laptop"] = array ("RAM" => "3072", "HDD" => "320", "GC" => "2"); $massiv["Netbook"] = array ("RAM" => "2048", "HDD" => "250", "GC" => "1.6");

Per visualizzare un elemento di un array multidimensionale sullo schermo in PHP, è sufficiente utilizzare l'operatore echo output e il metodo di ancoraggio delle variabili, poiché altrimenti (senza ancoraggio delle variabili) l'elemento dell'array multidimensionale non verrà visualizzato sullo schermo. schermo. Questa è un'altra differenza quando si lavora con array multidimensionali PHP.

Echo "Un PC desktop con capacità RAM ".$massiv["PC desktop"]["RAM"]." e capacità del disco rigido ".$massiv["PC desktop"]["HDD"]." ha una frequenza del processore di " . $massiv["PC desktop"]["GC"]. "GC.";

Ora andiamo riassumiamolo tutti i precedenti.

In questo articolo abbiamo esaminato tre tipi di array: indicizzato, associativo e multidimensionale. Abbiamo imparato come creare array in PHP e come estrarre un elemento dell'array e visualizzarlo sullo schermo. Sono state trattate le basi per lavorare con gli array, nonché alcune regole per la visualizzazione degli elementi sullo schermo.

Questo conclude questo articolo. Se non vuoi perdertelo ultimi aggiornamenti blog, puoi iscriverti alla newsletter nel modo per te più conveniente nella sezione “” oppure utilizzare il modulo sottostante.

Questo è tutto. In bocca al lupo e a presto sulle pagine del blog

In questo breve articolo esamineremo diversi modi per lavorare con gli array. Vale la pena notare che questo è uno dei tipi di dati più importanti e lingue moderneÈ difficile persino immaginare di programmare senza di loro. Cos'è un array?
Un array è un insieme strutturato di dati.
Lo si può determinare dalla loro struttura matrice semplice O associativo. È impossibile dire con certezza quale sia il migliore, perché... Dovrebbe essere utilizzato un tipo o un altro a seconda della situazione.

Come creare un semplice array in PHP

Ecco come appare un semplice array:

Vorrei attirare subito la vostra attenzione sui dati (sì, l'ho scritto così apposta :)). Stringa del tipo di dati o $frutti[2]. " scrivi sempre tra virgolette, non importa quali, funzioneranno sia quelle singole che quelle doppie (l'importante è che la riga inizi e finisca con le stesse virgolette). Il numero 29 ha un tipo intero o numeri: le virgolette non sono necessarie per questi tipi di dati.
Controlliamo come appare l'array $my_array:

"; print_r($mio_array); echo ""; /* get Array ( => Sedia => Nuvola => 29) */ ?>

Ecco come appare un semplice array.
0,1,2 — indici del nostro array. Con l'aiuto degli indici possiamo dedurre qualcosa di specifico da un array.

Inoltre, possiamo creare lo stesso array se scriviamo:

E c'è una terza via:

"Sedia", 1 => "Nuvola", 2 => 29);?>

E il quarto :)

gli indici verranno riempiti da 0.

PHP cos'è un array associativo

Abbiamo già capito cos'è un array semplice. Un array associativo è diverso in questo vengono utilizzate le chiavi al posto degli indici. Cioè, non useremo più 0,1 o 2 per accedere ai valori. Scriviamo il nostro array semplice come associativo:

Sedia => Nuvola => 29) */ ?>

E per chiamare useremo

Invece del numero ( indice) impostiamo un nome significativo (associazione) e ora è possibile chiamare il nostro indice chiave dell'array(oggetto, cielo, numero). La notazione più popolare e, forse, più conveniente per un array associativo:

"Sedia", "cielo" => "Nuvola", "numero" => 29); ?>

Matrice multidimensionale

Solo qualche parola su questo gigante :)

array ("colore" => "rosso", "anno" => "2010", "mark" => "M5"), "audi" => array ("colore" => "nero", "anno" = > "2011", "marchio" => "TT")); stampa_r($auto); // output dell'array echo $auto["bmw"]["mark"]; // M5 ?>

Come hai capito, invece di un valore che prima era una stringa o un numero, ora c'è un tipo di dati come un array ( Ti creerò un array all'interno di un array, in modo che quando chiami l'array ci sarà un altro array :)).

Array associativi

Gli array semplici utilizzano le chiavi solo per separare gli elementi e non hanno alcun valore pratico:

Negli array associativi, le chiavi descrivono il tipo di valore che contengono: età, nome, ecc.:

"Vladimiro", "età" => 20]; ?>

Array bidimensionali e multidimensionali

Finora ci siamo occupati solo di array unidimensionali, ma possiamo anche creare un array bidimensionale o multidimensionale:

"Vasya"];

$umano["mani"] = ["sinistra", "destra"];

print_r($umano); ?>

Come puoi vedere, abbiamo creato un array $human e poi al suo interno abbiamo creato un altro array $human["hands"] . Risultato nel browser:

Array ( => Vasya => Array ( => sinistra => destra))

Possiamo creare array multidimensionali di qualsiasi nidificazione. L'output di un array di questo tipo è simile al seguente:

Applicazione pratica di array multidimensionali Ricordi nella lezione precedente volevamo raggruppare i prodotti e le loro caratteristiche? Lascia che ti ricordi il codice che abbiamo ottenuto: Samsung Galaxy"; $prodotto2_prezzo = 5000; $prodotto2_quantità = true; $prodotto3_name = "

Nokia Lumia

"; $prodotto3_prezzo = 4000; $prodotto3_quantità = vero; ?>

Ora possiamo mettere tutte queste informazioni in un'unica variabile. In questo caso, ogni prodotto sarà un array associativo e tutti i prodotti si troveranno all'interno di un array semplice:

"iPhone", "prezzo" => 5000, "quantità" => true], [ "nome" => "Samsung Galaxy", "prezzo" => 5000, "quantità" => true], [ "nome" = > "Nokia Lumia", "prezzo" => 4000, "quantità" => true ] ]; ?>

O in alternativa:

"iPhone", "prezzo" => 5000, "quantità" => true];

$prodotti = ["nome" => "Samsung Galaxy", "prezzo" => 5000, "quantità" => true];

$prodotti = ["nome" => "Nokia Lumia", "prezzo" => 4000, "quantità" => true]; ?>

Il risultato di entrambe le opzioni sarà:

Array ( => Array ( => iPhone => 5000 => 1) => Array ( => Samsung Galaxy => 5000 => 1) => Array ( => Nokia Lumia => 4000 => 1))

1. Crea un array $city , aggiungi la chiave del nome con qualsiasi valore. 2. Crea un sottoarray di strade con qualsiasi strada casuale. Ogni strada deve avere un nome (name) e un numero di case (buildings_count), nonché un sottoarray di numeri civici (old_buildings) da demolire.

Buona giornata, habrazhiteliki!

Ma cosa succede se abbiamo un array n-dimensionale? Ad esempio, cinque dimensioni:

$array = array("dimensione1" => array("dimensione2" => array("dimensione3" => array("dimensione4" => array("dimensione5" => array("valore1" => "Ehi! Io\ "valorem1", "valore2" => "Ehi! Io\"valorem2"))))));

Per ottenere il valore tramite chiave, ad esempio "valore1", dobbiamo scrivere il seguente codice:

Echo $array["dimensione1"]["dimensione2"]["dimensione3"]["dimensione4"]["dimensione5"]["valore1"]; // EHI! Sono valore1

Non definirei bella una registrazione del genere, anche se è corretta. Suggerisco di rendere questa notazione un po' più gradevole facendola assomigliare a questa:

Echo easyA($array)->dimensione1->dimensione2->dimensione3->dimensione4->dimensione5->valore1; // EHI! Sono valore1

D'accordo, sembra davvero molto più bello rispetto alla registrazione standard.

Quindi, per prima cosa dobbiamo creare una classe che elaborerà il nostro array. Chiamiamolo easyArray e rendiamolo un Singleton:

Codice

class easyArray( private static $instance; // Stato della classe. private $Array; // Array passato alla classe. private function __construct())( // Archiviato il costruttore. ) private function __clone()) ( // Archiviato il metodo di clonazione. ) public static function getInstance())( if(null === self::$instance)( self::$instance = new self(); ) return self::$instance; )

Dopo che la nostra classe sarà diventata singleton, aggiungeremo ad essa un metodo molto importante, che scriverà l'array risultante in una variabile privata:

Codice

funzione pubblica loadArray($newArray)( if(is_array($newArray))( $this->Array = $newArray; return $this; )else( $error = "Spiacenti, non hai passato un array."; lancia new Eccezione($errore);
Dal codice puoi vedere che controlliamo anche cosa è stato passato all'input del metodo. Se non è stato passato un array, lanceremo semplicemente un'eccezione con l'errore " Sfortunatamente, non hai passato un array". Se il controllo ha avuto esito positivo, scriviamo l'array risultante in una variabile privata e restituiamo l'oggetto corrente.

Bene, ora sovrascriveremo il metodo magico "__get()" della nostra classe. Questo è necessario per ottenere il risultato che desideriamo. COSÌ:

Codice

funzione pubblica __get($index)( if(isset($this->Array[$index]))( if(is_array($this->Array[$index]))( $this->loadArray($this-> Array[$indice]); return $this; )else( return $this->Array[$index]; ) )else( $error = "Chiave mancante (".$index.") nell'array"; lancia una nuova eccezione ($errore);

Innanzitutto controlliamo la presenza della chiave richiesta nell'array se non c'è lanciamo un'eccezione con l'errore "; "Chiave mancante (".$index.") nell'array"". Successivamente, controlliamo se la chiave richiesta è un array. Se c'è un valore per tale chiave nell'array, restituiamo semplicemente questo valore. E se è un array, lo inviamo al " loadArray($newArray)" e restituisce l'oggetto corrente ($this).

E, come tocco finale alla nostra classe, aggiungiamo un metodo che restituirà l'array corrente con cui sta lavorando la nostra classe:

Codice

funzione pubblica arrayReturn() ( return $this->Array; )

Quindi la nostra classe è pronta, ma per ottenere i valori ora dobbiamo utilizzare un codice come questo:

Echo easyArray::getInstance()->loadArray($array)->dimension1->dimension2->dimension3->dimension4->dimension5->value1; // EHI! Sono valore1

È diventato ancora più lungo di prima. Ma questo problema può essere risolto, e per questo abbiamo bisogno di una semplice funzione:

Funzione easyA($newArray)( return easyArray::getInstance()->loadArray($newArray); )

Bene, ora controlliamo cosa abbiamo ottenuto come risultato:

Codice

array("dimensione2" => array("dimensione3" => array("dimensione4" => array("dimension5" => array("valore1" => "Ehi! I\"m valore1", "valore2" => "Ehi! Sono valore2")))))); require_once("easyArray.php"); require_once("easyArrayFunction.php"); echo easyA($array)->dimensione1->dimensione2->dimensione3->dimensione4->dimensione5->valore1; // EHI! Valore I\"m1 echo easyA($array)->dimensione1->dimensione2->dimensione3->dimensione4->dimensione5->valore2; // Ehi! Valore I\"m2 ?>
Tutto funziona come previsto.

Inoltre, questa classe può essere superata file di configurazione tipo:

Codice

array("dimensione2" => array("dimensione3" => array("dimension4" => array("dimension5" => array("valore1" => "Ehi! I\"m valore1 dal file array.php", "valore2" => "Ehi! Io\"m valore2 dal file array.php")))))); ?>


Per fare ciò è necessario utilizzare la seguente costruzione:

Codice

echo easyA(require_once("array.php"))->dimensione1->dimensione2->dimensione3->dimensione4->dimensione5->valore1; // EHI! Sono value1 dal file array.php

Potrei aver reinventato la ruota, ma penso che questo articolo interesserà sia i principianti che gli altri programmatori.

Grazie per l'attenzione.