Verificando o fim de um array em PHP

Muitas vezes quando precisamos percorrer um array, precisamos saber quando o array chega ao seu fim para tomarmos uma certa decisão. Para fazer isto em PHP é muito simples, basta combinarmos a função end juntamente com a função array_keys.

A função end retorna o último elemento de um array. Já a função array_keys, lista todas as chaves de um array. Vamos ao exemplo:

<?php

$frutas = array(‘morango’ => ‘vermelho’, ‘maca’ => ‘verde’, ‘abacaxi’ => ‘amarelo’, ‘uva’ => ‘roxa’);

foreach ($frutas as $fruta => $cor){

if (end(array_keys($frutas)) == $fruta){
echo “$fruta e o ultimo item do array. Sua cor e $cor.”;
}

}

?>

Simples! Até a próxima 😉

4 pensou em “Verificando o fim de um array em PHP

  1. fabio

    Apesar de conhecer a funcionalidade das funcoes end e array_keys nunca atinei de combinar as duas para a finalidade de verificar se chegamos ao fim de um array – eu sempre usava um contador e verificava se $contador == count($array)-1

    No caso do seu exemplo, para melhorar um pouquinho em desempenho, eu atribuiria o nome da ultima chave numa variavel antes de percorrer o array para nao ter que executar end(array_keys($frutas)) inumeras vezes.

    Responder
    1. angelito Autor do post

      Boa Fábio. Não tinha me ligado nessa. Criando uma variável com o último elemento do array fica mais rápido mesmo, pois evita a chamada de duas funções (end() e array_keys())

      Abraço.

      Responder
  2. Diego Guedes

    $fimVetor = end(array_keys($frutas));
    foreach ($frutas as $fruta => $cor){
    if ($fimVetor == $fruta){
    echo “$fruta e o ultimo item do array. Sua cor e $cor.”;
    }

    Responder
  3. Daniel Oliveira

    Com as atualizações do PHP, hoje em dia se usa assim (para não gerar erro no log):

    $arrKeys = array_keys($frutas)
    $endArr = end($arrKeys);
    foreach ($frutas as $fruta => $cor) {
    if ($endArr == $fruta) {
    echo “{$fruta} é o ultimo item do array. Sua cor é {$cor}.”;
    }
    }

    Responder

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.