Задать вопрос
nskarl
@nskarl
Вообще дизайнер

Почему массив, сформированный на 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х словах:

$.isArray( users: { username:{} } ) - false
$.isArray( users: { 0:{} } ) - true

почему? ведь и то и другое - массив?
  • Вопрос задан
  • 200 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
ведь и то и другое - массив?
В php - да. А в javascript - это разные типы данных. У массива в js могут быть только числовые ключи и только по порядку, иначе этот json распарсится как объект.
Ответ написан
Комментировать
В js ассоциативных массивов нет, ассоциативные массивы сериализуются в объекты.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы