Obtener el primer elemento de una matriz

Resuelto hsz asked hace 54 años • 39 respuestas

Tengo una matriz:

array( 4 => 'apple', 7 => 'orange', 13 => 'plum' )

Me gustaría obtener el primer elemento de esta matriz. Resultado esperado: cadena apple

Un requisito: no se puede hacer pasando por referencia , por lo que array_shiftno es una buena solución.

¿Cómo puedo hacer esto?

hsz avatar Jan 01 '70 08:01 hsz
Aceptado

Respuesta original, pero costosa (O(n)):

array_shift(array_values($array));

En O(1):

array_pop(array_reverse($array));

Otros casos de uso, etc...

Si modificar (en el sentido de restablecer los punteros de la matriz) $arrayno es un problema, puede usar:

reset($array);

En teoría, esto debería ser más eficiente si se necesita una "copia" de matriz:

array_shift(array_slice($array, 0, 1));

Con PHP 5.4+ (pero puede causar un error de índice si está vacío):

array_values($array)[0];
blueyed avatar Sep 22 '2010 16:09 blueyed

Como señaló Mike (la forma más sencilla posible):

$arr = array( 4 => 'apple', 7 => 'orange', 13 => 'plum' );
echo reset($arr); // Echoes "apple"

Si desea obtener la clave: (ejecútela después del reinicio)

echo key($arr); // Echoes "4"

De la documentación de PHP :

reinicio mixto (matriz | objeto &$matriz );

Descripción:

reset() rebobina el puntero interno de la matriz al primer elemento y devuelve el valor del primer elemento de la matriz, o FALSO si la matriz está vacía.

lepe avatar Nov 15 '2011 03:11 lepe
$first_value = reset($array); // First element's value
$first_key = key($array); // First element's key
Ijas Ameenudeen avatar Jun 08 '2012 06:06 Ijas Ameenudeen

current($array)

Devuelve el primer elemento de una matriz, según el manual de PHP .

Cada matriz tiene un puntero interno a su elemento "actual", que se inicializa en el primer elemento insertado en la matriz.

Así que funciona hasta que haya reposicionado el puntero de la matriz; de lo contrario, tendrá que usar reset()el cual rebobinará la matriz y devolverá el primer elemento de la matriz.

Según el reinicio manual de PHP .

reset() rebobina el puntero interno de la matriz al primer elemento y devuelve el valor del primer elemento de la matriz.

Ejemplos de current()yreset()

$array = array('step one', 'step two', 'step three', 'step four');

// by default, the pointer is on the first element
echo current($array) . "<br />\n"; // "step one"

//Forward the array pointer and then reset it

// skip two steps
next($array);
next($array);
echo current($array) . "<br />\n"; // "step three"

// reset pointer, start again on step one
echo reset($array) . "<br />\n"; // "step one"
Tofeeq avatar Sep 12 '2014 08:09 Tofeeq