Tive uma situação em que precisava obter a próxima chave disponível em uma matriz, que é o + 1 mais alto.
Por exemplo, se a matriz é $ data = ['1' => 'alguma coisa, '34' => 'outra coisa'], então eu precisava calcular 35 para adicionar um novo elemento à matriz que tinha uma chave maior do que qualquer dos outros. No caso de um array vazio, eu precisava de 1 como próxima chave disponível.
Esta é a solução que funcionou:
$highest = 0;
foreach($data as $idx=>$dummy)
{
if($idx > $highest)$highest=$idx;
}
$highest++;
Funcionará em todos os casos, matriz vazia ou não. Se você só precisa encontrar a chave mais alta em vez da chave mais alta + 1, exclua a última linha. Você obterá o valor 0 se a matriz estiver vazia.