Array: creare, aggiungere, modificare, cancellare elementi in un array – PHP

Molti che usano gli array per la prima volta non ne capiscono le potenzialità (io ero tra questi) tendendo a usare sistemi poco pratici e molto spesso pesanti per il sistema e lunghi da creare.

Beh, una cosa interessante da sapere è che in un semplice array si possono contenere liste di id di utenti che si sono iscritti, ad esempio, ad un corso o una lista di nomi per un possibile bambino, il tutto in una lista di valori separati da virgola.

Semplice o complesso? Molto più semplice di quello che possa sembrare.

Come si crea un array?

//Creo array

$array=array();

Da questo momento la variabile array sarà un array. Ok. Ma come aggiungo il nome del pupo? Così:

//Aggiungo valore all'array

$array[]='Portapipe';

Ammesso e non concesso che mai chiamerei un figlio portapipe, ora fa parte dell’array e posso usarlo. E se volessi aggiungerne più di uno?

//Aggiungo 2 nomi all'array

$array[]='Andrea';

$array[]='Gianni';

Ora il nostro array è formato da 3 nomi: Portapipe, Andrea e Gianni. Nell’array i valori sono separati da virgola e la loro posizione è importante per riuscire a recuperarli, se sappiamo dove sono: (Portapipe,Andrea,Gianni = Portapipe->0,Andrea->1,Gianni->2). Esempio


//L'array inizia sempre dalla posizione 0

echo $array[0]; //questo scriverà a video Portapipe

echo $array[2]; //questo scriverà a video Gianni

Ma noi vogliamo mettere una serie di nomi e lasciare che sia il fato a decidere per noi. Come fare? Beh, possiamo mescolare il nostro array e prendere il primo valore tramite la funzione shuffle():

shuffle($array); //scritto senza variabile perché non ritorna valore e perché se no non funziona

echo $array[0]; //in questo modo il primo valore dell'array sarà casuale perché mescolato con shuffle

Ma a me Gianni non piace e lo voglio cambiare. Ora però l’array è mescolato e non so più in che posizione sta Gianni che prima era al 2. Possiamo ricorrere ad una funzione creata su misura e di semplice utilizzo:

//Funzione per modificare elemento dentro array
function modifica_elemento_array($arr,$nome,$nuovonome)
{
   // verifico che il valore sia compreso nell'array
   if(in_array($nome,$arr))
   {
 	/* modifico il nome che non mi piace tramite la
        chiave recuperata usando array_search */
 	$arr[array_search($nome,$arr)]=$nuovonome; 

 	// restituisco l'array dopo averlo re-indicizzato
 	return array_values($arr);
   }else{
 	// se non trovo corrispondenze restituisco l'array così com'è
 	return $arr;
   }
}

/* per modificare Gianni basterà richiamare la
funzione indicando array, nome da cambiare e nuovo nome */

modifica_elemento_array($array,"Gianni","Luca");

Così facendo il nome Gianni verrà modificato con il nome Luca. Ma portapipe proprio non si può sentire e devo assolutamente cancellarlo dall’array. Come faccio?
Beh, con un’altra semplice funzione molto simile a quella per la modifica.

//Funzione per cancellare elemento dentro array
function elimina_elemento_array($arr,$nome)
{
   // verifico che il valore sia compreso nell'array
   if(in_array($nome,$arr))
   {
 	// rimuovo il valore passando ad unset la chiave recuperata usando array_search
 	unset($arr[array_search($nome,$arr)]); 

 	// restituisco l'array dopo averlo re-indicizzato
 	return array_values($arr);
   }else{
 	// se non trovo corrispondenze restituisco l'array così com'è
 	return $arr;
   }
}

/* per eliminare Portapipe basterà richiamare la
funzione indicando l'array e il nome da cancellare */

elimina_elemento_array($array,"Portapipe");

E quel brutto nome non ci sarà più nella scelta che sto creando a puntino.

Se invece sapete in che posizione si trova un nome, allora basterà usare:

unset($array[0]);

dove ‘0’ è il numero della posizione dell’array.

Esistono anche gli array associativi, di cui vi propongo un’esempio veloce.
Gli array associativi, a differenza di quelli appena visti, usano al posto della posizione delle parole vere e proprie. Vediamo:

//Ho delle bollette da pagare:

$array['gas']=20;
$array['luce']=50;
$array['condominio']=40;

//Per richiamare una bolletta da pagare basterà inserire il nome invece della posizione

echo $array['luce'];

Quindi al posto della posizione si scriverà ciò che ci interessa, che si chiama ‘Chiave’ (difatti in un array si parla di coppia chiave->valore). Attenzione a non settare più volte una stessa chiave poiché quelle precedenti verranno soprascritte!
Come al solito niente paroloni ma solo pratica e poca tecnica.

Si è capito tutto? 😉

Annunci

, , , , , , , , , , , , , , ,

  1. #1 di Gianlorenzo Janzo Lenza il 30/11/2016 - 20:27

    utilissimo, mille grazie.

  1. Cancellare i cookie – Kioskea – Community di assistenza e | come -cancellare

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: