Como obter o primeiro elemento de um array em PHP: 5 melhores maneiras

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Como obter o primeiro elemento de um array em PHP: análise completa

\n\n

Você já se perguntou quantas maneiras existem em PHP para obter o primeiro elemento de um array? Parece uma tarefa trivial — mas existem cinco opções, cada uma com suas nuances. No Stack Overflow, esta pergunta acumulou milhares de visualizações, e não é por acaso: iniciantes frequentemente caem em armadilhas, e desenvolvedores experientes debatem sobre desempenho.

\n\n

Hoje vamos analisar todos os métodos populares, seus prós e contras, e descobrir qual é o mais rápido e seguro. Vamos lá!

\n\n

1. Acesso direto pelo índice [0]

\n\n

A maneira mais óbvia é acessar o elemento zero. Mas aqui está a primeira armadilha. Este método funciona apenas para arrays com chaves numéricas começando do zero.

\n\n
<?php\n$fruits = ['apple', 'banana', 'cherry'];\necho $fruits[0]; // apple\n\n// E se as chaves não começarem do zero?\n$users = [1 => 'Alice', 3 => 'Bob'];\necho $users[0]; // Notice: Undefined offset: 0\n?>
\n\n

Além disso, se o array estiver vazio, você receberá um erro. Portanto, use este método apenas quando tiver 100% de certeza sobre a estrutura do array.

\n\n

2. Função current() — a favorita inesperada

\n\n

Muitos se surpreendem, mas current() retorna não o elemento atual do loop, mas o primeiro elemento do array (se o ponteiro interno não tiver sido movido).

\n\n
<?php\n$colors = ['red', 'green', 'blue'];\necho current($colors); // red\n?>
\n\n

Nuance importante: se você usou anteriormente next(), prev() ou end(), o ponteiro será deslocado. Para garantir a obtenção do primeiro elemento, chame reset() previamente.

\n\n
<?php\n$colors = ['red', 'green', 'blue'];\nnext($colors); // desloca o ponteiro\necho current($colors); // green (já não é o primeiro!)\n\nreset($colors); // reinicia o ponteiro\necho current($colors); // red\n?>
\n\n

3. reset() — reiniciar o ponteiro e obter o primeiro elemento

\n\n

A função reset() não apenas retorna o primeiro elemento, mas também reinicia o ponteiro interno do array para o início. Isso é especialmente útil antes de uma iteração.

\n\n
<?php\n$data = ['x' => 10, 'y' => 20, 'z' => 30];\n$first = reset($data);\necho $first; // 10\n\n// Agora você pode iterar com segurança\nforeach ($data as $key => $value) {\n    // Começaremos pelo primeiro elemento\n}\n?>
\n\n

Quando usar: quando você precisa garantir a obtenção do primeiro elemento, independentemente da chave. Ideal para arrays associativos.

\n\n

4. array_shift() — o perigoso bonitão

\n\n

array_shift() extrai o primeiro elemento e o remove do array. É uma ferramenta poderosa, mas com efeito colateral.

\n\n
<?php\n$queue = ['task1', 'task2', 'task3'];\n$firstTask = array_shift($queue);\n\necho $firstTask; // task1\nprint_r($queue);\n// Array ( [0] => task2 [1] => task3 )\n?>
\n\n

Observe: as chaves são reindexadas! Se você tinha chaves de string, elas serão preservadas, mas as numéricas serão reiniciadas. Isso pode levar a bugs inesperados.

\n\n

Quando usar: em tarefas de fila (FIFO), quando o elemento precisa não apenas ser lido, mas também removido da lista.

\n\n

5. array_slice() — o soldado universal

\n\n

Método seguro que retorna uma fatia do array sem modificar o original. Para obter o primeiro elemento, usamos array_slice($array, 0, 1).

\n\n
<?php\n$mixed = ['a' => 1, 'b' => 2, 'c' => 3];\n$firstPiece = array_slice($mixed, 0, 1);\n\nprint_r($firstPiece);\n// Array ( [a] => 1 )\n?>
\n\n

Importante: esta função retorna um array, não um valor. Para obter o valor em si, adicione [0] ou use current() no resultado.

Blogs

Book Recommendations