HOWTO · PHP

Determina la prima e l'ultima iterazione in un bucle Foreach in PHP

Diversi modi per ottenere il primo e l'ultimo elemento in un bucle foreach() utilizzando diverse versioni di PHP, incluso counter in tutte le versioni PHP e array_key_first() e array_key_last() da PHP 7.3

In questa pagina

Il bucle PHP foreach() viene utilizzato per scorrere un blocco di codice per ogni elemento dell’array. In questo articolo, scopriremo come usare il bucle foreach() e come ottenere il primo e l’ultimo elemento di un array.

Sintassi PHP foreach()

Il bucle foreach() viene utilizzato principalmente per iterare ogni valore di un array.

Esempio di bucle foreach():

for($array as $key => $value){
    // Add code here
}

I significati dei parametri foreach():

  • $array - Deve essere un array valido da utilizzare in un bucle; Se l’array passato non è valido o è una stringa, restituisce un errore del tipo: (Avviso: argomento non valido fornito per foreach()).
  • $key - È la key dell’elemento ad ogni iterazione.
  • $value - È il valore dell’elemento in ogni iterazione.

Ottieni il primo e l’ultimo elemento in un bucle foreach() in PHP

Esistono diversi approcci per ottenere il primo e l’ultimo elemento in un bucle utilizzando PHP e varia a seconda delle versioni.

Questi sono, usando counter (funziona per tutte le versioni), usando array_key_first() e array_key_last() per PHP 7.3.

Usa Counter nel bucle foreach di PHP

Aggiunta di una variabile intera e posizionamento del contatore in fondo al bucle foreach().

Esempio:

$array  = array("dog", "rabbit", "horse", "rat", "cat");
$x = 1;
$length = count($array);

foreach($array as $animal){
    if($x === 1){
        //first item
        echo $animal; // output: dog
    }else if($x === $length){
        echo $animal; // output: cat
    }
    $x++;
}

Nell’esempio precedente, l’lista degli animali è memorizzato come un array.

Quindi imposta $x come 1 per avviare il contatore.

Usa count() per determinare la lunghezza totale di un array. L’iterazione del contatore è stata posta in fondo al bucle foreach() - $x++; per eseguire la condizione per ottenere il primo elemento.

Per ottenere l’ultimo elemento, controlla se $x è uguale alla lunghezza totale dell’array. Se true, ottiene l’ultimo elemento.

Usa array_key_first() e array_key_last() in PHP Loop

Con l’ultima versione di PHP, ottenere il primo e l’ultimo elemento in un array non può mai essere più efficiente.

Esempio:

$array  = array("dog", "rabbit", "horse", "rat", "cat");
foreach($array as $index => $animal) {
    if ($index === array_key_first($array))
        echo $animal; // output: dog

    if ($index === array_key_last($array))
        echo $animal; // output: cat
}

Nell’esempio sopra, array_key_first() ottiene la chiave del primo elemento dell’array, in questo caso è 0.

Quindi array_key_last() ottiene l’ultima chiave dell’array, in questo caso, 5.

Ispezionando la matrice, l’elemento che si trova nel tasto 0 è il dog che è il primo e nel 5° tasto, è il cat che è l’ultimo elemento.