Qual é o melhor método para obter a chave do último item da matriz adicionada no PHP?
Pergunta
Existe uma maneira melhor de fazer o seguinte:
$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
Isto lhe dará a chave do elemento da matriz, mais recentemente, adicionar.
Existe uma maneira melhor de fazer isso?
Solução
Você também pode fazer:
$end = end(array_keys($array));
Mas eu acho que o seu caminho torna claro o que você quer fazer, então você poderia chicote algo como:
function array_last_key($array) {
end($array);
return key($array);
}
Isso é sobre ele.
Outras dicas
Não há nenhuma função especial para isso em PHP, então eu acho que o caminho é a maneira mais eficiente de fazer isso. Para facilitar a leitura você pode querer colocá-lo em uma função chamada algo como array_last_key ().
Se você pode garantir que sua matriz não terá quaisquer teclas não-numéricas e que você não vai ser apagar todas as chaves, em seguida, o último elemento adicionado a chave de sua matriz será
$last_added = count($array)-1;
Se você realmente precisa manter o controle da chave mais recente adicionado, você pode querer vir para cima com um esquema para chegar a suas próprias chaves que são garantidos para ser único. Desta forma, você sempre terá a chave adicionado mais recente desde que o gerou.
$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
Simplesmente não colocar. Ambos final ea chave são Big O (1) tempo. Qualquer outra forma retarda o seu código para baixo e aumenta a complexidade.