Como obter o primeiro elemento de um array em PHP: análise completa
\n\nVocê 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\nHoje vamos analisar todos os métodos populares, seus prós e contras, e descobrir qual é o mais rápido e seguro. Vamos lá!
\n\n1. Acesso direto pelo índice [0]
\n\nA 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\nAlé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\n2. Função current() — a favorita inesperada
\n\nMuitos 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).
<?php\n$colors = ['red', 'green', 'blue'];\necho current($colors); // red\n?>\n\nNuance importante: se você usou anteriormente next(), prev() ou end(), o ponteiro será deslocado. Para garantir a obtenção do primeiro elemento, chame reset() previamente.
<?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\n3. reset() — reiniciar o ponteiro e obter o primeiro elemento
\n\nA 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.
<?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\nQuando usar: quando você precisa garantir a obtenção do primeiro elemento, independentemente da chave. Ideal para arrays associativos.
\n\n4. array_shift() — o perigoso bonitão
\n\narray_shift() extrai o primeiro elemento e o remove do array. É uma ferramenta poderosa, mas com efeito colateral.
<?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\nObserve: 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\nQuando usar: em tarefas de fila (FIFO), quando o elemento precisa não apenas ser lido, mas também removido da lista.
\n\n5. array_slice() — o soldado universal
\n\nMétodo seguro que retorna uma fatia do array sem modificar o original. Para obter o primeiro elemento, usamos array_slice($array, 0, 1).
<?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\nImportante: esta função retorna um array, não um valor. Para obter o valor em si, adicione [0] ou use current() no resultado.