Gli Array in PHP

Benvenuti in questo articolo in cui affronteremo gli Array in PHP.
Prima di tutto facciamo un introduzione generale per far capire a tutti di che stiamo parlando:

Introduzione a PHP

PHP o Hypertext processor è un linguaggio di programmazione interpretato, usato maggiormente per scrivere codici lato server delle pagine web, non visibili dall’utente, non come JavaScript con cui si scrive codici lato client che sono visibili all’utente.
ha però bisogno di qualcuno che lo interpreti, il server web, PHP viene eseguito direttamente sul server web, come ad esempio Apache, convertendo il codice PHP in HTML, ed inviandolo al client.
PHP è diventato il linguaggio lato server più usato.

Logo PHP
Il logo PHP

Cos’è un Array?

Spiegatovi in modo sintetico e molto semplice cosa sia e come funzioni PHP, spieghiamo gli Array:

Un Array, è un dato strutturato, o struttura dati, ciò significa che può contenere più dati(valori) al suo interno, identificati con degli indici numerici.
Possono essere omogenei, contengono tutti dati dello stesso tipo (Ex. Solo stringhe o solo numeri), o eterogenei, contengono tipi di dati differenti (Ex. Sia stringhe che numeri).

Gli Array in PHP possono essere dichiarati(crearli) ed inizializzati(mettere qualcosa al loro interno) in 2 modi, sono entrambi corretti:

1)	$nomearray= [contenutoarray];
2)	$nomearray= array(contenutoarray);

Per aprire e chiudere il codice in PHP si usa <?php e ?>.
Vediamo adesso un esempio pratico con gli Array:

<?php
$casa= [“cucina”,”salone”,”soffitta”];
?>

In questo esempio si può osservare l’utilizzo degli apici, si possono usare sia i doppi apici sia i singoli, per delimitare le stringhe di testo, e che vi sono delle virgole per separare gli elementi.

Adesso introduciamo il concetto di indice numerico, è un numero che identifica un valore che sta in una posizione dell’Array, in questo caso, cucina è nella prima posizione, salone nella seconda, soffitta nella terza.
L’indice è legato alla posizione, quindi dato che cucina è nella prima posizione allora il suo indice è 1, no?
No, perché negli indici degli Array si inizia a contare da 0, quindi la prima posizione avrà indice 0, la seconda indice 1, ecc.

Del codice PHP

Come accedere ad un elemento di un Array

Adesso vi potreste chiedere, ma avendo più valori tutti nella stessa struttura dati, come faccio ad accedere ad ogni singolo elemento di esso?
Niente di più semplice!
Basta scrivere:

<?php
$nomearray[numeroindicedell’elemento];
?>

Nel nostro esempio:

<?php
$casa[1];     // selezioneremo l’elemento “salone”.
?>

Già così potremmo scrivere del codice più interessante, facendo stampare a schermo l’elemento con “echo+elemento”, come nel seguente esempio:

<?php
$casa= [“cucina”,”salone”,”soffitta”];
echo $casa[1]; //stamperà salone.
?php

Ah scusa, mi sono dimenticato di dirti che // serve per commentare una riga, serve per descrivere cosa fa quell’istruzione, l’interprete non leggerà i commenti, puoi anche scrivere commenti su più righe aprendo con /* e chiudendo con */.

<?php
/*
Questo è un commento su più righe.
*/
// Questo è un commento su singola riga.
?>

Come aggiungere un elemento ad un Array

Si può aggiungere un elemento ad un Array dopo che è stato inizializzato, si può specificare l’indice che avrà il nuovo elemento, altrimenti in automatico PHP partirà dall’indice più grande incrementandolo di 1.

<?php
$casa[]="soggiorno";    //soggiorno ha indice 3.
$casa[7]="soggiorno";   /*soggiorno ha indice 7, gli indici non usati rimarranno vuoti.*/
?>

Come modificare un elemento di un Array

Per modificare un elemento di un Array, in caso non ci andasse più bene quello già inserito, basta specificare l’elemento che vogliamo modificarne riassegnandogli un nuovo valore

<?php
$casa[3]="scantinato"; /*adesso all'indice 3 non ci sarà più soggiorno 
ma scantinato.*/
?>

Come eliminare un elemento di un Array

Si può eliminare un elemento utilizzando “unset(array[indice])“, così elimineremo l’elemento di quell’indice, lasciandolo vuoto, si riprenderà la numerazione di nuovi elementi sempre dall’indice più alto più 1.
Per riassegnare gli indici dopo delle cancellazioni si usa “array_values(array)“.

<?php
unset($casa[2]); /*si eliminerà l'elemento soffitta, lasciando l'indice vuoto, quindi ci sarà 0,1,3.*/
$casa=array_values($casa); /*adesso ci saranno gli indici 0,1,2.
Quindi scantinato che prima aveva indice 3 adesso ha indice 2.*/
?>

Come stampare a schermo un Array

Prima hai visto che si può stampare a schermo un singolo elemento dell’Array, ma se lo volessi stampare per intero?
Puoi farlo usando “print_r(array)” o con “var_dump(array)“, il primo stamperà gli elementi dell’Array con i relativi indici, il secondo stamperà gli elementi dello stesso per come sono salvati,dicendo anche quanti elementi contiene l’Array, con il relativo indice ed il tipo di dato(boolean,stringa,ecc.).

<?php
print_r($casa);
/*stamperà
Array
(
    [0] => cucina
    [1] => salone
    [2] => scantinato
)
*/
var_dump($casa);
/*stamperà
array(3) {
  [0]=>
  string(6) "cucina"
  [1]=>
  string(6) "salone"
  [2]=>
  string(10) "scantinato"
}
*/
?>

Gli Array associativi in PHP

Adesso che dovresti aver in mente in modo più chiaro che cosa sia un Array (con indici numerici) introduciamo quelli associativi.

Un Array associativo è un Array che invece di avere degli indici numerici ha degli indici di tipo stringa di testo, chiamati chiave, e si crea un associazione coppia chiave-valore con il simbolo “=>“.
Per aggiungere, eliminare, modificare o accedere ad un elemento di un Array associativo basta fare la stessa cosa fatta per gli Array con indice numerico, ma invece di specificare l’indice si dovrà specificare la chiave.
In questi preferisco usare i singoli apici, si possono usare anche i singoli ma attenzione quando si fa l’echo, o in generale quando si accede ad un elemento con gli apici.
Ecco un esempio;

<?php
$casa = [
    'colore' => 'Giallo', 
    'costo' => '50.000$', 
];

echo $casa['colore']; //stamperà Giallo.
echo "$casa[colore]"; //stamperà Giallo.
$casa['mobili compresi']='no'; //si aggiunge un elemento nuovo.
$casa['mobili compresi']='si'; //lo si modifica.
unset($casa['costo']); //si elimina l'elemento costo.
var_dump($casa); // si stampa tutto l'array.
?>

Come potresti aver intuito non c’è bisogno di utilizzare “array_values(array)“, dato che non ci sono indici numerici.

Gli Array multidimensionali

Ed infine vediamo gli Array multidimensionali, sono degli Array con più serie di indici o chiavi, ovvero, un Array al cui interno ci sono altri Array.

<?php
$casa1= [
    "piano1" => [
        "stanza1" => "soggiorno",
        "stanza2" => "balcone"
    ],
    "piano2" => [
        "stanza1" => "salone",
        "stanza2" => "sgabuzzino"
    ]
];
$casa2= [["soggiorno,balcone"],["salone","sgabuzzino"]];
var_dump($casa1); //stamperà $casa1
echo "</br>"; //sposta il cursore di una riga in giù
var_dump($casa2); //stamperà $casa2
?>

$casa1” è un Array associativo multidimensionale, dato che ha le coppie chiave valore, “$casa2” è un Array con indici numerici multidimensionale, comunque sono entrambi Array multidimensionali.
Non farti spaventare da quel “echo “</br>”;“, serve solo per andare a capo.
Adesso vediamo in un pratico esempio tutto quello che già ti ho spiegato per gli Array monodimensionali come funziona su quelli multidimensionali.
Prima quelli ad indice numerico, che seguono tutte le tegole degli indici numerici sopraindicate, e poi quelli associativi.

<?php
$casa2= [["soggiorno","balcone"],["salone","sgabuzzino"]];
echo $casa2[0][1]; //stamperà balcone.
$casa2 [0][]="cucina"; //aggiungerà l'elemento cucina nell'indice 0 2.
$casa2 [0][4]="cantina;//aggiungerà l'elemento cantina nell'indice 0 4.
$casa2 []="vuoto"; //aggiungerà la stringa nell'indice 2.
$casa2 [6]="soffitta"; //aggiungerà la stringa nell'indice 6.
$casa2 [0][2]="sala da pranzo"; //si modifica l'elemento nell'indice 2.
unset($casa2 [0][1]); //si elimina l'elemento nell'indice 0 1.
print_r($casa2); //stamperà tutto l'array.
?>
<?php
$casa1= [
    "piano1" => [
        "stanza1" => "soggiorno",
        "stanza2" => "balcone"
    ],
    "piano2" => [
        "stanza1" => "salone",
        "stanza2" => "sgabuzzino"
    ]
];
echo $casa1 ['piano1']['stanza1']; //stamperà soggiorno.
$casa1 ['piano3']="vuoto"; //si aggiunge lìelemento piano3.
$casa1 ['piano2']['stanza3']="cucina"; //si aggiunge l'elemento stanza3 
                                       //di piano2.
$casa1 ['piano1']['stanza1']="vuoto"; //si modifica l'elemento stanza1 
                                      //  di piano1.
unset($casa1['piano1']); //si elimina l'elemento piano1.
unset($casa1['piano2']['stanza1']); //si elimina l'elemento stanza1 di 
                                    //piano2.
var_dump($casa1); //stamperà l'array.
?>

Alla fine le azioni con gli Array multidimensionali si scrivono in maniera simile a quelle con gli Array monodimensionali, ma dovendo specificare più indici, o chiavi.
Ricorda che quando scrivi l’indice “[0][]” non specificando il secondo indice è l’indice più grande incrementato di 1, quindi scrivere “[][]” non è la stessa cosa.
Ovviamente nessuno vieta di mettere anche 3 o 4 indici, si possono fare anche Array di Array di Array continuando all’infinito.

Spero che questa guida ti sia servita e che tu abbia imparato qualcosa su PHP, sugli Array e sull’informatica in generale.
A presto con un nuovo articolo!

Articolo scritto da:

Davide D.

Dalla stessa categoria