Почему массив, сформированный на php, не определяется как массив в js?
Привет всем!
Столкнулся с таким интересным моментом, и вроде бы по логике вещей все верно, но нет, и найти овтета не могу.
Вопрос собственно вот в чем:
я в контроллере формирую массив РНР из базы $data['users'] , затем через json_encode($data) передаю его на парсинг в JS JSON
Но.
Если у массива $data['users'] первичные ключи будут ввиде [$username], то жабаскриптовая $.isArray(data.users) будет его полностью игнорировать. Если же перед тем как сделать echo json_encode я этот же массив переформирую в него же самого, но с ключами вида [0], [1] - то жабий isArray(data.users) возвращает true;
Может быть немного запутанно написал, в 2х словах:
В php - да. А в javascript - это разные типы данных. У массива в js могут быть только числовые ключи и только по порядку, иначе этот json распарсится как объект.