Como verificar se um array em PHP é associativo ou sequencial (indexado)?
Olá a todos! Comecei a estudar PHP e me deparei com uma situação confusa. Eu sei que no PHP existem dois tipos de arrays: os comuns (sequenciais) com chaves numéricas a partir de 0 e os associativos, onde as chaves são strings. Mas na prática tudo é misturado: um array pode começar com a chave 0, depois vir uma string, e depois um número novamente. Ou as chaves podem ser números, mas não em ordem (por exemplo, 0, 5, 10).
Preciso escrever uma função que processa dados de um formulário. Se o array for sequencial (ou seja, as chaves estão em ordem: 0, 1, 2, 3...), aplico uma lógica. Se for associativo (por exemplo, chaves 'name', 'email', 'age') — outra. Mas a verificação padrão com `array_keys()` não dá uma resposta definitiva, porque um array como `[0 => 'a', 2 => 'b']` é formalmente numérico, mas não sequencial.
Aqui está um exemplo que me confunde:
```php
$arr1 = ['a', 'b', 'c']; // sequencial
$arr2 = ['name' => 'John', 'age' => 30]; // associativo
$arr3 = [0 => 'x', 1 => 'y', 3 => 'z']; // numérico, mas com lacunas