Sabato
19
Marzo 2022
Come recuperare l’ultimo elemento di un array con le funzioni array_key_last() e array_key_first()? Se hai bisogno di identificare specifici elementi del tuo array, dalla versione 7.3 in poi è possibile farlo perché sono state introdotte queste due funzioni.
Queste funzioni sono particolarmente utili nei cicli for e foreach per eseguire azioni solo per un determinato elemento del tuo array, scartando tutti gli altri.
Vengono in tuo aiuto anche quando vuoi sostituire o reperire elementi in array generati automaticamente da altro codice e quindi difficili da intercettare in altri modi.
Vediamo subito il codice:
Immaginiamo il caso applicato ad un array semplice composto da tre numeri dove vogliamo recuperare l’ultimo elemento in un ciclo foreach.
$array = array("first"=>5, "second"=>3, "third"=>4);
foreach ($array as $key => $value) {
// codice
if ($key == array_key_last($array)) {
// è l'ultimo elemento dell'array
} else {
// si tratta di tutti gli altri elementi
}
}
Attenzione: questa funzione recupera il nome dell’elemento dell’array, non il suo valore.
Per chiarire assegnamo il contenuto ad una variabile e stampiamo a video il risultato in questo modo:
$array = array("first"=>5, "second"=>3, "third"=>4);
$key_last = array_key_last($array);
echo var_dump($key_last);
// stamperà: string(5) "third"
Se vogliamo utilizzare un array più semplice verrà stampato a video il numero dell’elemento richiamato (partendo da zero).
$array = array(5,3,4);
$key_last = array_key_last($array);
echo var_dump($key_last);
// stamperà: int(2), cioè il terzo elemento dell’array
Per richiamare il valore dell’elemento è sufficiente identificarlo con la chiave appena trovata:
$array = array(5,3,4);
$key_last = array_key_last($array);
echo var_dump($array[$key_last]);
//stamperà int(4)
Per richiamare il primo elemento di un array è sufficiente utilizzare la funzione array_key_first() in questo modo:
$array = array("first"=>5, "second"=>3, "third"=>4);
foreach ($array as $key => $value) {
// codice
if ($key == array_key_first($array)) {
// è il primo elemento dell'array
} else {
// si tratta di tutti gli altri elementi
}
}
Ricapitolando:
Scrivi un commento