Ordem dos elementos em arrays no PHP
Como você já sabe, em arrays comuns, os elementos estão dispostos em uma ordem estrita, pois a posição de cada elemento determina sua chave. Em arrays associativos, nós mesmos atribuímos as chaves, portanto a ordem dos elementos não importa.
Como exemplo, vamos considerar este array associativo:
<?php
$arr = [1 => 'value1', 2 => 'value2', 3 => 'value3'];
echo $arr[1]; // exibirá 'value1'
echo $arr[2]; // exibirá 'value2'
echo $arr[3]; // exibirá 'value3'
?>
Se reorganizarmos os elementos deste array em uma ordem arbitrária (claro, juntamente com suas chaves), nada mudará no funcionamento do nosso script:
<?php
$arr = [3 => 'value3', 1 => 'value1', 2 => 'value2'];
echo $arr[1]; // exibirá 'value1'
echo $arr[2]; // exibirá 'value2'
echo $arr[3]; // exibirá 'value3'
?>
Além disso, as chaves numéricas não precisam necessariamente ter todos os valores sem lacunas. Podemos ter números arbitrários e isso não causará nenhum problema:
<?php
$arr = [7 => 'value1', 50 => 'value2', 23 => 'value3'];
?>
Verifique o que foi descrito em algum dos seus arrays associativos.