Arrays em PHP: o eterno desafio do primeiro elemento
\n\nTodo desenvolvedor PHP já se deparou com a tarefa: "Como obter o primeiro elemento de um array?". Parece simples, não é? Mas o diabo, como sempre, está nos detalhes. Arrays em PHP podem ser indexados (com chaves numéricas) ou associativos (com chaves de string), e o que funciona para um tipo pode falhar para o outro.
\n\nNeste artigo, vamos explorar 7 maneiras comprovadas de obter o primeiro elemento de um array, comparar seu desempenho e descobrir qual método escolher em cada situação. Você entenderá por que array_shift() nem sempre é a melhor opção e como reset() pode salvar seu código.
Índice
\n- \n
- Método 1: array_shift() — o clássico \n
- Método 2: reset() — o truque esperto com o ponteiro \n
- Método 3: current() após reset() — para ter controle \n
- Método 4: array_values() + [0] — o canivete suíço \n
- Método 5: array_key_first() — para PHP 7.3+ \n
- Método 6: foreach com break — gambiarra que funciona \n
- Método 7: array_slice() — para fãs de programação funcional \n
- Comparação de desempenho \n
- Erros comuns de iniciantes \n
- Conclusão e próximos passos \n
Método 1: array_shift() — o clássico
\nA maneira mais óbvia que vem à mente é usar a função array_shift(). Ela extrai o primeiro elemento do array e o remove do array original.
<?php\n$frutas = ['maçã', 'banana', 'cereja'];\n$primeira = array_shift($frutas);\necho $primeira; // maçã\nprint_r($frutas); // [1 => 'banana', 2 => 'cereja']\n?>\n\nVantagens: Simplicidade, intuitividade.
\nDesvantagens: A função altera o array original. Se você precisar manter os dados intactos, este método não é adequado. Além disso, para arrays grandes, a operação pode ser custosa.
\n\nMétodo 2: reset() — o truque esperto com o ponteiro
\nA função reset() posiciona o ponteiro interno do array no primeiro elemento e retorna seu valor. O array não é modificado!
<?php\n$frutas = ['maçã', 'banana', 'cereja'];\n$primeira = reset($frutas);\necho $primeira; // maçã\nprint_r($frutas); // ['maçã', 'banana', 'cereja'] — array intacto\n?>\n\nEste método funciona perfeitamente tanto com arrays indexados quanto associativos. reset() é meu favorito pessoal para a maioria das tarefas.
Importante: Se o array estiver vazio, reset() retornará false. Fique atento a isso!
Método 3: current() após reset() — para ter controle
\nÀs vezes, você precisa não apenas obter o primeiro elemento, mas também garantir que o ponteiro esteja exatamente nele. A combinação reset() + current() oferece controle total.
<?php\n$frutas = ['maçã', 'banana', 'cereja'];\nreset($frutas);\n$primeira = current($frutas);\necho $primeira; // maçã\n// O ponteiro permanece no primeiro elemento\n$segunda = next($frutas);\necho $segunda; // banana\n?>\n\nEste método é útil quando você planeja iterar o array usando next(), prev() e outras funções de manipulação de ponteiro.
Método 4: array_values() + [0] — o canivete suíço
\nSe você está trabalhando com um array associativo e não sabe a chave do primeiro elemento, pode redefinir todas as chaves com array_values() e acessar o índice zero.
<?php\n$usuario = ['nome' => 'João', 'idade'