PHP: gli array

Una variabile in PHP puo contenere un dato corrispondente ad un numero o ad unaa stringa. Esistono delle variabili che possono contenere anche più di un valore ed il loro nome è ARRAY.

Per accedere ai singoli dati di un ARRAY ci sono due modi differenti:

Funzione array()

Questo metodo ci consente di recuperare singolarmente un dato usando  la sua posizione all'interno della lista, chiamata indice, specificata tra parentesi quadre:

 

$test = array('ciao', 'webgab', 34, 'php', 7.31);

L'ARRAY in questione contiene 5 dati, 3 stringhe, un numero intero ed un numero decimale. L'indice di ogni dato corrisponde alla sua posizione descritta tra le parentesi tonde dell' ARRAY, dove la prima posizione è identificata  dal numero 0:

	$test[0] vale 'ciao'
	$test[1] vale 'webgab'
	$test[2] vale 34
	$test[3] vale 'php'
	$test[4] vale 7.31
	


	
<?php
	$test = array('ciao', 'webgab', 34, 'php', 7.31);
	
	echo 'primo valore: ' , $test[0];
	echo '<br>';
	echo 'secondo valore: ' , $test[1];
	echo '<br>';
	echo 'terzo valore: ' , $test[2];
	echo '<br>';
	echo 'quarto valore: ' , $test[3];
	echo '<br>';
	echo 'quinto valore: ' , $test[4];
	?>

Per gestire un array contenente molte informazioni possiamo usare un nome, chiamato chiave, da associare ad ogni valore inserito in un array. Si parla in questo caso di array associativi.

	<?php
	$persona = array('nome' => 'mario', 'anno di nascita' => 1977,'lavoro' => 'meccanico');
	
	echo 'nome: ' , $persona['nome'];
	echo '<br>';
	echo 'anno di nascita: ' , $persona['anno di nascita'];
	echo '<br>';
	echo 'lavoro: ' , $persona['lavoro'];
	?>

Gli array associativi si distinguono dall' uso dei caratteri per l'assegnazione di un valore => e per l'utilizzo di una stringa posta tra apici come chiave.

Per  visualizzare in maniera immediata il contenuto e la struttura della variabile viene utilizzata la funzione print_r():

	<?php
	$persona = array('nome' => 'mario', 'anno di nascita' => 1977,'lavoro' => 'meccanico');
	
	// visualizziamone la struttura con la funzione print_r

	print_r($persona);
	?>

questo è il risultato che otterremo:

	Array
	(
	   [nome] => Mario
	   [anno di nascita] => 1977
	   [lavoro] => meccanico
	)

Quando strutturiamo un Array possiamo utilizzare sia di indici numerici che di coppie chiave => valore:

	<?php
	$persona = array('mario', 'anno di nascita' => 1977,'meccanico');
	
	// visualizziamone la struttura con la funzione print_r
	print_r($persona);
	?>
	

Il risultato della struttura di questo Array sarà il seguente:

	Array
	(
	   [0] => Mario
	   [anno di nascita] => 1977
	   [2] => meccanico
	)

il PHP assegna automaticamente un indice numerico a tutti i valori sprovvisti di chiave. L'indice parte da 0 e va via via incrementandosi. Quando un valore è presente con un esplicito indice numerico, questo viene rispettato ed ai valori successivi, sprovvisti di indice, ne verrà assegnato uno appena maggiore. E' possibile quindi che si creino dei "buchi" all'interno degli indici numerici dell'array:

<?php
$persona = array('mario',
	              'cognome'=>'rossi',
	              8=>'meccanico',
	              'roma',
	              'nazione'=>'italia',
	              1977,
	              'sposato',
	              21=>'due figli',
	              35);

print_r($persona);
?>

Il risultato della struttura di questo Array sarà il seguente:

	Array ( [0] => mario

	 [cognome] => rossi

	[8] => meccanico

	[9] => roma

	[nazione] => italia

	[10] => 1977

	[11] => sposato

	[21] => due figli

	[22] => 35 )

Possiamo aggiungere  nuovi elementi all'interno di un array esistente, utilizzando chiavi numeriche, stringhe oppure omettiamo la chiave che verrà assegnata automaticamente partendo dall' ultimo valore dell' indice che trova:

<?php
	// inizializzo un array vuoto
	$persona = array();

	//assegno all'array dei nuovi valori
	$persona = array('nome'=>mario,'rossi',35);

	// aggiungo una coppia chiave => valore
	$persona['colore'] = 'biondi';
	
	// aggiungo un semplice valore che prenderà un indice numerico (2)
	// notate le parentesi quadre senza indice o chiave
	$persona[] = 'impiegato';
	
	// aggiungo un valore imponendo un indice (43)
	$persona[43] = 12000;
	
	// il seguente valore avrà come indice 44
	$persona[] = 'casa';
	
	print_r($persona);
?>

il risultato sarà il seguente:

	Array ( [nome] => mario
	[0] => rossi
	[1] => 35
	[colore] => biondi
	[2] => impiegato
	[43] => 12000
	[44] => casa )

Gli elementi che compongono la struttura di un array possono essere di qualsiasi tipo: numeri, stringhe ma anche altri array:

	<?php
	// definiamo un array $persona
	$film = array('nome' => 'Mario',
	   'lavoro' => 'impiegato',
	   'figli' => array('Luca', 'Maria'));

	print_r($persona);
	?>

il risultato sarà il seguente:

	Array ( [nome] => Mario
	  [lavoro] => impiegato
	  [figli] => Array ( [0] => Luca
	                           [1] => Maria ) )