Gli Array - Tipi di dati in PHP

Gli Array - Tipi di dati in PHP

Gli array in PHP sono un tipo di dato che permette di memorizzare un insieme di valori, che possono essere di qualsiasi tipo.

Gli array possono essere creati utilizzando la funzione array() o utilizzando le parentesi quadre []

Sintassi degli array in php:

<?php
// Creare un array utilizzando la funzione array()
$array_example1 = array('Primo', 'Secondo', 'Terzo' , 'Quarto', 'Quinto');

var_dump(array_example1);

// Creare un array utilizzando le parentesi quadre []
$array_example2 = ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio'];

echo $array_example2[1]; // output: Febbraio
?>

Gli Array Associativi

Gli array associativi in PHP sono un tipo di array che utilizza dei valori di stringa, anziché indici numerici, come chiavi per accedere ai loro elementi. Ciò significa che, al contrario degli array numerici, non è necessario specificare un indice numerico per accedere a un elemento di un array associativo. Invece, è possibile utilizzare una stringa come chiave per accedere all'elemento.

Ecco un esempio di come si potrebbe creare un array associativo in PHP:

// Array Associativo 

$utente = [
    "nome" => "Donato",
    "cognome" => "Pirolo",
    "eta" => 30,
];

// Stampa il valore associato alla chiave "Donato"
echo $utente ["nome"]; // output: "Donato"

// Concateniamo nome e cognome
echo $utente["nome"] . " " . $utente["cognome"]; // output: Donato Pirolo

// Se vogliamo accedere ad un array associativo utilizzando i doppi apici dobbiamo usare {}
echo "Io sono {$utente['nome']} {$utente['cognome']}"; // Io sono Donato Pirolo32

// Modifica il valore associato alla chiave "chiave3"
$utente["eta"] = 32;

// Stampa il valore associato alla chiave "30" (che ora ha il valore "32")
echo $utente["eta"]; // output: 32

La funzione Extract() sugli array Associativi

La funzione extract() in PHP consente di estrarre le variabili da un array associativo, e di assegnarle a variabili con lo stesso nome di chiave. Facciamo un esempio

// funzione extract() su array associativo

$utente_example = [
    "nome" => "Donato",
    "cognome" => "Pirolo",
    "eta" => 30,
];

// Estrazione delle chiavi - valori
extract($utente_example);

echo "Ciao sono $nome $cognome ed ho $eta anni"; //output: Ciao sono Donato Pirolo ed ho 30 anni

È possibile anche specificare un prefisso da utilizzare per le variabili estratte, ad esempio:

extract($utente_example , EXTR_PREFIX_ALL, 'estrazione_');
echo "Ciao sono $estrazione_nome $estrazione_cognome"; // output: Ciao sono Donato Pirolo

Aggiungere e rimuovere elementi da un Array

Per aggiungere un elemento ad un array esistente il metodo più semplice è

array_push(): Aggiungere elementi alla fine dell'array

Con array_push() possiamo aggiungere elementi alla fine di un array

$persone = ['Donato'];
array_push($persone,'Martina','Roberta'); //aggiunge elementi alla fine
var_dump($persone);

/* OUTPUT : 
array(3) {
  [0]=>
  string(6) "Donato"
  [1]=>
  string(7) "Martina"
  [2]=>
  string(7) "Roberta"
}
*/
array_pop($persone); // rimuovere ultimo elemento della lista
var_dump($persone); // output: Michela Genoveffa Donato Martina Ginevra

array_shift($persone); // rimuovere primo elemento della lista
var_dump($persone); // output: Genoveffa Donato Martina Ginevra

array_unshift(): Aggiungere elementi all'inizio dell'array

Con array_unshift() possiamo aggiungere elementi all'inizio di un array

$persone = ['Donato'];
array_unshift($persone,'Martina','Roberta'); //aggiunge elementi alla fine
var_dump($persone);

/* OUTPUT : 
array(3) {
  [0]=>
  string(7) "Martina"
  [1]=>
  string(7) "Roberta"
  [2]=>
  string(6) "Donato"
}
*/

array_pop(): Rimuovere ultimo elemento della lista

Con array_pop() possiamo rimuovere l'ultimo elemento di un array

$persone = ['Donato', 'Martina', 'Roberta'];
array_pop($persone); //rimuove l'ultimo elemento della lista
var_dump($persone);

/* OUTPUT : 
array(2) {
  [0]=>
  string(6) "Donato"
  [1]=>
  string(7) "Martina"
}
*/

array_shift(): Rimuovere il primo elemento della lista

Con array_shift() possiamo rimuovere il primo elemento di un array

$persone = ['Donato', 'Martina', 'Roberta'];
array_shift($persone); //rimuove l'ultimo elemento della lista
var_dump($persone);

/* OUTPUT : 
array(2) {
  [0]=>
  string(7) "Martina"
  [1]=>
  string(7) "Roberta"
}
*/

unset(): Rimuovere in base all'indice numerico o alla chiave, non riordinando l'indice.

Con unset() possiamo rimuovere gli elementi in base all'indice numerico o la chiave, tenendo a mente che rimuove anche l'indice e non lo riordina.

$persone = ['Donato', 'Martina', 'Roberta', 'Sabrina', 'Michela', 'Selly'];
unset($persone[2]); //rimuove l'elemento che si trova in 3 posizione della lista
var_dump($persone);

/* OUTPUT : 
array(5) {
  [0]=>
  string(6) "Donato"
  [1]=>
  string(7) "Martina"
  [3]=> // come possiamo vedere non l'indice 2 non c'è poichè è stato rimosso
  string(7) "Sabrina"
  [4]=>
  string(7) "Michela"
  [5]=>
  string(5) "Selly"
}
*/

array_values() : Riordinare l'indice dopo la rimozione con unset.

Con array_values() possiamo riordinare l'indice dopo aver rimosso un elemento tramite indice. In questo esempio, con unset abbiamo rimosso per posizione d'indice il l'elemento che si trova in 3a posizione, e dopo abbiamo ridichiarato la variabile alfabeto attribuendogli la funzione array_values() che andrà a lavorare su una copia dell'array dato in input.

$persone = ['Donato', 'Martina', 'Roberta', 'Sabrina', 'Michela', 'Selly'];
unset($persone[2]); //rimuove l'elemento che si trova in 3 posizione della lista
$persone = array_values($persone); 
var_dump($persone);

/* OUTPUT : 
array(5) {
  [0]=>
  string(6) "Donato"
  [1]=>
  string(7) "Martina"
  [2]=> // Qui possiamo vedere l'indice riordinato
  string(7) "Sabrina"
  [3]=>
  string(7) "Michela"
  [4]=>
  string(5) "Selly"
}
*/

array_splice() : Rimuovere più elementi e ri-odinare l'indice.

Con array_splice() possiamo rimuovere più elementi stabilendo l'array da modificare, il parametro di inizio (da dove iniziare a rimuovere) e quanti elementi rimuovere, alla fine ritroveremo il nostro indice ri-aggiornato correttamente.

$persone = ['Donato', 'Martina', 'Roberta', 'Sabrina', 'Michela', 'Selly'];
array_splice($persone,2,3); //rimuovere dall'array persone gli elementi a partire dal 3° elemento e rimuovere 3 elementi (a partire da quello).
var_dump($persone);

/* OUTPUT : 
array(3) {
  [0]=>
  string(6) "Donato"
  [1]=>
  string(7) "Martina"
  [2]=>
  string(5) "Selly"
}
*/

Array Unpacking : Estrarre gli elementi da un array

Per array unpacking si intende spacchettare un array, in parole povere estrarre gli elementi da un array. Questo ci torna particolarmente utile quando vogliamo estendere un array. Possiamo estendere un array usando l'operatore spread (...), facciamo un esempio

// unpacking array

$arr_unpacking = [10,20,30];
$arr_extend = [...$arr_unpacking,40,50]; //usiamo l'operatore ... spread per estendere l'array

var_dump($arr_extend);

/* Output : Estendere l'array
array(5) {
  [0]=>
  int(10)
  [1]=>
  int(20)
  [2]=>
  int(30)
  [3]=>
  int(40)
  [4]=>
  int(50)
}
*/

Array multidimensionali: Gli array che contengono altri array

Come abbiamo già visto in precedenza, gli array sono collezioni di elementi che possono contenere anche altri array al suo interno e vengono chiamati array multidimensionali (in poche parole array innestati)

// array multidimensionale

//Creazione di un array che contiene altri 3 array al suo interno
$arr_multidimensionale = [
['SKU' => 'pr0001','PRODUCT_NAME' => 'Prodotto 1','PRICE' => 10,'VALUE' => '€'],
['SKU' => 'pr0002','PRODUCT_NAME' => 'Prodotto 2','PRICE' => 20,'VALUE' => '€'],
['SKU' => 'pr0003','PRODUCT_NAME' => 'Prodotto 3','PRICE' => 30,'VALUE' => '€']
];

// Accesso tramite indice numerico al 3° array e all'elemento con chiave 'Product_name'  
echo $arr_multidimensionale[2]['PRODUCT_NAME'];

// Output : Prodotto 3

Type Casting: l'assegnazione forzata del tipo di dato di una variabile

In php non dobbiamo esplicitamente dichiarare il tipo di una variabile, poichè é php che si occupa di definire il tipo di variabile, ma può capitare a volte di voler dichiarare il tipo di variabile, ad esempio, può capitare di avere un tipo di variabile stringa e volerlo convertire in un intero.

// Convertire una stringa in intero

$type_stringa = "24";
$transform_int = (int) $type_stringa;
var_dump($trasform_int);

// Output : 24 (come numero intero e non come stringa)
// Convertire un booleano in intero

$type_boolean = true;
$transform_int = (int) $type_boolean;
var_dump($type_boolean);

// Output : int(1) (come numero intero e non come booleano)
// Convertire numeri in un array

$type_int= 33;
$transform_array = (array) $type_int;
var_dump($type_int);

/* Output : un array con chiave 0 e l'intero 33
array(1) {
  [0]=>
  int(33)
}
*/
// Convertire un array in oggetto

$type_array = [20,'Donato',true];
$transform_obj = (object) $type_array;
var_dump($transform_obj );

/* Output : 
object(stdClass)#1 (3) {
  ["0"]=>
  int(20)
  ["1"]=>
  string(6) "Donato"
  ["2"]=>
  bool(true)
}
*/
// Convertire un intero in stringa

$type_int = 32;
$transform_string = (string) $type_int ;
var_dump($transform_string);

// Output :  string(2) "32"

Scritto da Donato Pirolo

Ciao, sono Donato, frontend developer con una smisurata passione per la SEO. Creo strumenti ad hoc per aiutare aziende e professionisti ad essere cercati sul web e trovare clienti.

Potrebbero interessarti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Copyright © 2023
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram