Corsi on-line

PHP: funzione array_merge() e ordinamento degli indici

Approfitto di una recente richiesta di assistenza tecnica per chiarire nuovamente un aspetto riguardante l’utilizzo della funzione array_merge() di PHP, cioè quello relativo al riordinamento degli indici; come è noto array_merge() ha il compito di fondere gli elementi di più array in un unico array, tramite la sua azione i valori di un array verranno accodati a quelli dell’array precedente e ciò avrà un effetto di riordinamento sulla disposizione degli indici numerici in sequenza.

PHPA tale proposito, si analizzi il seguente script che prevede la fusione di due array dotati sia di indici associativi che numerici:

<?php $simpson = array("mamma" => "Marge", "Bart", "Lisa");
$personaggi = array("Boe", "Milhouse", "preside" => "Seymour", "boss" => "Montgomery", "Kent");
$springfield = array_merge ($simpson, $personaggi);
print_r ($springfield);
?>

La sua esecuzione porterà alla produzione del risultato riportato di seguito:

Array ( [mamma] => Marge [0] => Bart [1] => Lisa [2] => Boe [3] => Milhouse [preside] => Seymour [boss] => Montgomery [4] => Kent ) 

Tale risultato verrà ottenuto dalla concatenazione tra “$simpson” e “$personaggi”, motivo per il quale:

  1. “Marge” conserverà il suo indice, cioè “mamma”;
  2. stesso discorso per quanto riguarda “Bart” e “Lisa” che erano associati agli indici [0] e [1] e rimangono tali;
  3. “Boe” era associato all’indice [0] in “$personaggi”, ma dato che ora “Boe” è un valore di “$springfield” e gli indici [0] e [1] sono già occupati, il suo nuovo indice sarà [2];
  4. “Milhouse” era associato all’indice [1] in “$personaggi”, ma dato che ora “Milhouse” è un valore di “$springfield” e gli indici [0], [1] e [2] sono già occupati, il suo nuovo indice sarà [3];
  5. “Seymour” e “Montgomery” mantengono i loro indici perché questi non sono numerici e non devono essere riordinati;
  6. “Kent” era associato all’indice [2] in “$personaggi”, ma dato che ora “Kent” è un valore di “$springfield” e gli indici [0], [1], [2] e [3] sono già occupati, il suo nuovo indice sarà [4].

Trovate che anche se spiegato in questo modo il concetto di riordinamento degli indici sia comunque troppo complesso? Ricordate sempre che negli array gli indici numerici vengono attribuiti da “0” a “n” e la dinamica descritta vi sembrerà molto più chiara.

Post correlati
I più letti del mese
Tematiche