PHP: utilizzare gli Array

Marco Pegoraro, 31 Maggio 2007

In risposta alla domanda posta da gabri nell'articolo sugli array associativi espongo qui alcuni esempi di utilizzo di queste strutture dati per effettuare dei primi basilari sistemi di immagazzinamento ed utilizzo di dati.

Ho preparato un po' di codice php di esempio che posto direttamente. Per ogni blocco ci sono i commenti che spiegano il significato del risultato ottenuto.

Come potrai vedere eseguendo il codice sul tuo pc il risultato dei 3 blocchi di codice non cambia. Cambia solamente il modo con cui si è ottenuto.

<?php


/**
* Utilizzo di 3 array distinti.
* In questo caso utilizzo 3 distinti array per immagazzinare
* dati su alcuni utenti.
* La chiave che accomuna gli utenti è l'indice dell'array.
*/
$matricola = array();
$nome = array();
$cognome = array();

array_push( $matricola, '234' );
array_push( $nome, 'Marco' );
array_push( $cognome, 'Pegoraro' );

array_push( $matricola, '284' );
array_push( $nome, 'Alberto' );
array_push( $cognome, 'Rossi' );

array_push( $matricola, '7364' );
array_push( $nome, 'Gianni' );
array_push( $cognome, 'Pinotto' );

// Visualizzazione:
echo '<h4>Elenco Alunni:</h4>';
echo '<dl>';
foreach ( $matricola as $i=>$mat ) {
echo "<dt><strong>Matricola: </strong>$mat</dt>";
echo "<dd>{$cognome[$i]} {$nome[$i]}</dd>";
}
echo '</dl>';
echo '<hr />';



/**
* Utilizzo di array associativi.
* In questo caso utilizzo un array numerico per
* la matricola e due array associativi per nome e cognome.
* In questo modo nome e cognome dipenderanno dalla matricola
* un po' come si fa in una relazione di tabella db.
*/
$matricola = array();
$nome = array();
$cognome = array();

$mat = '234';
array_push( $matricola, $mat );
$nome[$mat] = 'Marco';
$cognome[$mat] = 'Pegoraro';

$mat = '284';
array_push( $matricola, $mat );
$nome[$mat] = 'Alberto';
$cognome[$mat] = 'Rossi';

$mat = '7364';
array_push( $matricola, $mat );
$nome[$mat] = 'Gianni';
$cognome[$mat] = 'Pinotto';

// Visualizzazione:
echo '<h4>Elenco Alunni:</h4>';
echo '<dl>';
foreach ( $matricola as $mat ) {
echo "<dt><strong>Matricola: </strong>$mat</dt>";
echo "<dd>{$cognome[$mat]} {$nome[$mat]}</dd>";
}
echo '</dl>';
echo '<hr />';



/**
* Utilizzo un solo array associativo.
* In questo esempio utilizzo un array associativo complesso
* per immagazzinare le varie informazioni.
*/
$classe = array();

$mat = '234';
$classe[$mat]['nome'] = 'Marco';
$classe[$mat]['cog'] = 'Pegoraro';

$mat = '284';
$classe[$mat]['nome'] = 'Alberto';
$classe[$mat]['cog'] = 'Rossi';

$mat = '7364';
$classe[$mat]['nome'] = 'Gianni';
$classe[$mat]['cog'] = 'Pinotto';



// Visualizzazione:
echo '<h4>Elenco Alunni:</h4>';
echo '<dl>';
foreach ( array_keys($classe) as $key ) {
echo "<dt><strong>Matricola: </strong>$key</dt>";
echo "<dd>{$classe[$key]['cog']} {$classe[$key]['nome']}</dd>";
}
echo '</dl>';
print_r($classe);
echo '<hr />';
?>

Spero di essermi sufficientemente spiegato... in caso contrario... commenta!

Ciao a tutti!

Commenti all'articolo:

Perfetto..era quello che cercavo!
16/04/2008 16:05
by HyperLink


Aggiungi il Tuo Commento:

Inviando questa risposta dichiaro di aver letto ed approvato le condizioni di utilizzo di questo sito web.

(*) = campo obbligatorio.


Condizioni di Utilizzo:

1 - Tutte le risposte inviate a questo sito saranno sottoposte a moderazione manuale da parte dell'amministratore al fine di evitare il fenomeno detto "SPAM".

2 - Tutti i dati inseriti nel modulo di risposta verranno pubblicati in questa pagina ad eccezione dell'e-mail. Tale informazione viene richiesta ed archiviata dagli amministratori al fine di scoraggiare un utilizzo non consono del blog.

3 - Non utilizzare le risposte per pubblicizzare il tuo sito web. Tale tentativo verrà cancellato dall'amministratore. In ogni caso ai link inseriti nelle risposte viene applicato il "nofollow" per cui non ti portano vantaggi.
Se vuoi possiamo discutere uno scambio link: Srivimi!