Qual é o melhor método para obter a chave do último item da matriz adicionada no PHP?

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

  •  03-07-2019
  •  | 
  •  

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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top