¿Cuál es el mejor método para obtener la clave del último elemento de matriz agregado en PHP?

StackOverflow https://stackoverflow.com/questions/216030

  •  03-07-2019
  •  | 
  •  

Pregunta

¿Hay una mejor manera de hacer lo siguiente:

$array = array('test1', 'test2', 'test3', 'test4', 'test5');
// do a bunch of other stuff, probably a loop
$array[] = 'test6';
end($array);
echo key($array); // gives me 6

Esto le dará la clave del último elemento de matriz agregado.

¿Hay una mejor manera de hacer esto?

¿Fue útil?

Solución

También puedes hacer:

$end = end(array_keys($array));

Pero creo que tu camino deja claro lo que quieres hacer, por lo que podrías preparar algo como:

function array_last_key($array) {
    end($array);
    return key($array);
}

Eso es todo.

Otros consejos

No hay una función especial para esto en PHP, por lo que creo que tu forma de hacerlo es la más eficiente. Para facilitar la lectura, es posible que desee ubicarlo en una función llamada algo como array_last_key ().

Si puede garantizar que su matriz no tendrá ninguna clave no numérica y que no va a eliminar ninguna clave, entonces el último elemento agregado a la clave de su matriz será

$last_added = count($array)-1;

Si realmente necesita realizar un seguimiento de la última clave agregada, es posible que desee crear un esquema para crear sus propias claves que garanticen ser únicas. De esta manera, siempre tendrás la última clave agregada desde que la generaste.

$array = array('test1', 'test2', 'test3', 'test4', 'test5');
// do a bunch of other stuff, probably a loop
$new_key = generate_key();
$array[$new_key] = 'test6';
echo $new_key; // gives me blahblahfoobar123

Simplemente ponga no. Tanto el final como la clave son Big O (1) tiempo. Cualquier otra forma ralentiza tu código y agrega complejidad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top