Как вы уже знаете, в обычных массивах элементы располагаются в строгом порядке, ведь позиция каждого элемента определяет его ключ. В ассоциативных массивах мы сами назначаем ключи, поэтому порядок следования элементов не имеет значения.
Для примера рассмотрим вот такой ассоциативный массив:
<?php
$arr = [1 => 'value1', 2 => 'value2', 3 => 'value3'];
echo $arr[1]; // выведет 'value1'
echo $arr[2]; // выведет 'value2'
echo $arr[3]; // выведет 'value3'
?>
Если переставить элементы этого массива в произвольном порядке (конечно же, вместе с их ключами), то ничего от этого в работе нашего скрипта не изменится:
<?php
$arr = [3 => 'value3', 1 => 'value1', 2 => 'value2'];
echo $arr[1]; // выведет 'value1'
echo $arr[2]; // выведет 'value2'
echo $arr[3]; // выведет 'value3'
?>
Кроме того, числовые ключи не обязательно должны иметь все значения без дырок. У нас могут быть произвольные числа и это не будет приводить ни к каким проблемам:
<?php
$arr = [7 => 'value1', 50 => 'value2', 23 => 'value3'];
?>
Проверьте описанное на каком-нибудь из ваших ассоциативных массивов.