Все массивы в PHP являются фактически упорядоченными картами .Таким образом, порядок, в котором пары ключ-значение встречаются на карте, будет зависеть главным образом от порядка, в котором они были добавлены на карту.Массивы с последовательностью индекса 0..n-1
в строгом возрастающем порядке являются просто особым случаем.Вы можете проверить это, выполнив следующие действия:
$my_arr = array();
$my_arr[3] = 'd';
$my_arr[1] = 'b';
$my_arr[2] = 'c';
$my_arr[0] = 'a';
// #1
echo json_encode($my_arr, JSON_PRETTY_PRINT) . "\n";
// #2
ksort($my_arr);
echo json_encode($my_arr, JSON_PRETTY_PRINT);
Выход для # 1:
{
"3": "d",
"1": "b",
"2": "c",
"0": "a"
}
Выход для # 2:
[
"a",
"b",
"c",
"d"
]
Обратите внимание, что толькоРазница между двумя версиями $my_arr
заключается в порядке клавиш.Не в порядке, массив кодируется как объект, но для того, чтобы массив был закодирован как простой массив.
Пожалуйста, просмотрите связанный раздел документации для получения дополнительной информации о массивах PHP.Это уже хорошо документированная особенность языка.Если вы хотите строго увеличить порядок сортировки ключей, используйте ksort()
, как показано в примере выше.