@Tatá:
O array proposto é do tipo associativo, cujo formato é ÍNDICE => VALOR. Aí a questão trouxe um array assim:
........um
........dois
3 => três
........quatro
Note que dos 4 campos, 3 não têm o seu respectivo índice, somente o valor. Aí a questão traz o seguinte:
foreach($m as $x => $y) print $x; Traduzindo: para cada par chave-valor ($x => $y), imprima a chave ($x). Sendo assim, ele pede que seja impresso as chaves do array.
Como o array não tem todas as chaves estabelecidas, ele vai imprimir começando da posição 0, depois na posição 1. Quando chegar na posição 2, temos uma chave (3), que deverá ser impressa. A partir daí, ele segue imprimindo as demais chaves, mas seguindo a ordem da última chave. A última foi 3, então a próxima é 4.
Vai ser impresso na tela 0, 1, 3, 4.
Não sei se ficou claro, qualquer dúvida me mandem mensagem.
Quando não declarado, os índices ficam subentendido, iniciando sempre de 0.
No caso do array em questão:
m = array("Um ","Dois ",3 => "Três ","Quatro ",);
O primeiro elemento recebeu o índice 0, o segundo 1, o terceiro elemento recebeu um índice definido como 3 (caracterizando um array associativo) e, por fim, o quarto elemento como não foi definido nenhum índice o PHP considera o último valor válido do índice e incrementa (nesse caso o último índice foi 3).
A alternativa correta é:
(E) 0, 1, 3, 4