@KOPC1886

Как сделать, чтобы json_encode возвращал массив объектов?

Делаю ajax-запрос на страницу ajax.php
На ней формирую массив :
$jsonData[119]['id'] = 119;
            $jsonData[119]['name'] = 'Популярные';
            for($k = 120; $k <= 125; ++$k)
            {
                $jsonData[119]['services'][$k] = array(
                    'id' => $k,
                    'name' => 'Сервис популярные под номером '.$k,
                    'favorite' => false,
                    'main_category' => rand(120, 125),
                    /*'additional_category' => array(
                        ++$i => ++$i
                    )*/
                );
            }

            for($i = 120; $i <= 125; ++$i)
            {
                $jsonData[$i]['id'] = $i;
                $jsonData[$i]['name'] = 'Категория '.$i;

                for($k = 780; $k <= 785; ++$k)
                {
                    $jsonData[$i]['services'][$k] = array(
                        'id' => $k,
                        'name' => 'Сервис категории '.$i.' под номером '.$k,
                        'favorite' => false,
                        'main_category' => rand(123, 128),
                        /*'additional_category' => array(
                            ++$i => ++$i
                        )*/
                    );
                }
            }


и в конце делаю
die(json_encode($jsonData, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE));

при console.log();
возвращает не массив объектов, а объект объектов.
А мне нужен массив объектов.
  • Вопрос задан
  • 2714 просмотров
Пригласить эксперта
Ответы на вопрос 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
У вас в $jsonData ключи будут начинаться входить в диапозон [119, 125], что уже говорит о том что вы используете $jsonData не как массив а как хэш-мэпу.

Хотите массив - отдавайте массив скормив предворительно $jsonData функции array_values.
Ответ написан
Комментировать
Bziks
@Bziks
Без второго параметра
die(json_encode($jsonData));
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы