Если ключи массива в вашем массиве PHP не являются последовательными числами, json_encode()
должны сделать другой объект конструкцией, так как массивы JavaScript всегда последовательно индексируются по цифре. Используйте array_values()
внешнюю структуру PHP, чтобы отменить исходные ключи массива и заменить их нулевой последовательной нумерацией:
// Non-consecutive number keys are OK for PHP
// but not for a JavaScript array
$array = array(
2 => array("Afghanistan",32,13),
4 => array("Albania",32,12)
);
// array_values() removes the original keys and replaces
// with plain consecutive numbers
$out = array_values($array);
json_encode($out);
// [["Afghanistan",32,13],["Albania",32,12]]