Tuve una situación en la que necesitaba obtener la siguiente clave disponible en una matriz, que es el +1 más alto.
Por ejemplo, si la matriz es $ data = ['1' => 'algo, '34' => 'algo más'], entonces necesitaba calcular 35 para agregar un nuevo elemento a la matriz que tenía una clave más alta que cualquier de los demás. En el caso de una matriz vacía, necesitaba 1 como siguiente clave disponible.
Esta es la solución que funcionó:
$highest = 0;
foreach($data as $idx=>$dummy)
{
if($idx > $highest)$highest=$idx;
}
$highest++;
Funcionará en todos los casos, matriz vacía o no. Si solo necesita encontrar la clave más alta en lugar de la clave más alta + 1, elimine la última línea. Luego obtendrá un valor de 0 si la matriz está vacía.