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!
