disign | PHP, gli array | a digital sign for a best design!
A digital sign for a best design

Articolo stampato da http://disign.improntedigitali.it/php-gli-array-257-2-1.html

© Luca Frassineti

Programmazione 3.273 visualizzazioni

PHP, gli array

21/10/2011

Gli array sono contenitori dove memorizzare dati, con un contatore univoco per ogni dato inserito.

Possiamo 'visualizzare' un array immaginando tabella con due colonne, nella prima un numero che partendo da zero si incrementa un'unità per riga, nella seconda colonna il dato memorizzato.

I numeratori possono essere numerici o letterali senza obbligo sequenziale.

Esempio di costruzione di un array:

$mese = array('gennaio','febbraio','marzo', 'aprile', 'maggio', 'giugno', 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre');

O, in alternativa,
$mese[0] = 'gennaio';
$mese[2] = 'febbraio';
$mese[3] = 'marzo';

etc etc

Se non dichiarato diversamente gli array memorizzano i dati a partire dal contatore zero.


Per associare una chiave imponendone il valore la sintassi dovrà essere:
$mese = array(1 => 'gennaio','febbraio','marzo', 'aprile', 'maggio', 'giugno', 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre');
Con i simboli => associamo a gennaio il numero 1 e di conseguenza i valori successivi saranno numerati 2, 3, 4 etc etc.

Dopo aver costruito un array è comunque possibile incrementarlo con altri valori con l'istruzione:
$mese[] = 'january';

Per sostituire un valore l'istruzione sarà:
$mese[1] = 'january';

Se incrementiamo un valore assegnando un numero  che lascia dei 'vuoti' (nell'ultimo array di esempio l'ultimo mese dicembre corrispondeva al 12)
$mese[15] = 'march';
i nuovi valori senza specificare il numero partiranno dal numeratore trovato più alto e $mese[13] $mese[14] risulteranno inesistenti.

Negli array si possono definire anche numeratori letterali.
$mese['maggio_inglese'] = 'may';
Il numeratore letterale non incide sull'incremento dei numeratori numerici!

Gli array possono essere  creati anche usando le coppie chiave-valore:
$mese = array ("january" => "gennaio", "february" => "febbraio", "march" => "marzo");

Per eliminare gli elementi contenuti in un array  la funzione  da usare è unset():
unset($mese[15]);
elimina l'elemento 15 dell'array $mese.

Come contare e visualizzare i contenuti di un array?
Ecco un codice di esempio:
$mese = array('gennaio','febbraio','marzo', 'aprile', 'maggio', 'giugno', 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre');
$lunghezza= count($mese);
echo "L'array mese contiene  $lunghezza valori <br />";
echo "I valori memorizzati  sono... <br />";
for
($contatore=0; $contatore < $lunghezza; $contatore++)
    {
echo "$mese[$contatore] <br />";
    }

   
oppure, alternative al ciclo for sono il ciclo while o il ciclo foreach:

while(list (, $valore) = each ($mese)){
echo "$valore <br />";
}


foreach ($mese as $valore) {
echo "$valore <br />";
}


Come estrarre elementi random da un array? Nel codice di esempio l'istruzione array_rand estrae 2 valori random dall'array $mese:
$chiavi = array_rand($mese, 2);
echo $mese[$chiavi[0]] . "<br />";
echo $mese[$chiavi[1]] . "<br />";

Come ordinare un array? Nel codice di esempio l'istruzione sort ordina l'array $mese:
sort($mese);
Attenzione a non ordinare array con tipi di dati (numerici, stringhe...) diversi!

Come ordinare un array in modo inverso? Nel codice di esempio l'istruzione array_reverse ordina l'array $mese in modo contrario:
$nuovoarray = array_reverse($mese);

Infine segnalo l'istruzione print_r che consente di stampare il contenuto degli array in modo molto utile per eseguire un veloce debug:
print_r($mese);

Invia una domanda o un commento sull'articolo

I campi obbligatori sono segnalati *

*

*



 


Questo sito è totalmente privo di pubblicità, se volete sostenere questa inziativa, potete scegliere di fare una piccola donazione libera:


© 2009 - 2024 Impronte digitali di Luca Frassineti. Tutti i diritti riservati.