This way is fine for new values without keys. You can not insert value with a key, and numeric indexes will be 'reset' as 0 to N-1.
$keys = array_keys($a);
$index = array_flip($keys);
$key = key($a); //current element
//or
$key = 'k1';
array_splice($a, $index[$key] + 1, 0, array('value'));