Задать вопрос

Как из массива php сделать массив javascript?

Есть компонент, в котором строится php массив, потом в шаблоне этого компонента из этого массива берутся данные. В этом массиве есть координаты, мне по ним надо карту построить. Вот пример массива.
[OFFICE] => Array
        (
            [0] => Array
                (
                    [PRICE] => 260
                    [DAY] => 2 дня
                    [COMPANY] => СДЭК
                    [NAME] => посылка - до пункта выдачи
                    [STRAH] => 0
                    [ID] => 37
                    [PRICEHASH] => -1
                    [TRANSFER] => 0
                    [OFFICE] => Array
                        (
                            [0] => Array
                                (
                                    [id] => 449
                                    [to_tarif] => 37
                                    [code] => MSK2
                                    [name] => ул. Сергия Радонежского, д. 29/31
                                    [address] => ул. Сергия Радонежского, д. 29/31
                                    [tel] => +7-910-487-50-57, +7-925-859-03-65
                                    [schedule] => пн.-пт. с 10:00 до 20:00, сб. с 10:00 до 18:00, вс. с 10:00 до 16:00
                                    [gps] => 37.679275,55.747010
                                )

                            [1] => Array
                                (
                                    [id] => 3252
                                    [to_tarif] => 37
                                    [code] => MSK17
                                    [name] => Щелковское шоссе, д. 29
                                    [address] => Щелковское шоссе, д. 29
                                    [tel] => +7-901-757-85-06
                                    [schedule] => пн.-пт. с 10:00 до 20:00, сб.-вс. с 10:00 до 16:00
                                    [gps] => 37.780500,55.810200
                                )
                       )
             )
)

В конце шаблона я обрабатываю карту. Данные планировал брать из groups.
var myMap;
    function init (ymaps) {
       myMap = new ymaps.Map("map", {
           center: [50.443705, 30.530946],
           zoom: 16
       });
       for (var i = 0, l = groups.length; i < l; i++) {
           createGroup(groups[i]);
       }
       function createGroup (group) {
           ......
       }
       myMap.setBounds(myMap.geoObjects.getBounds());
    };

Вот как должен выглядеть groups
var groups = [
        {
            name: "Известные памятники",
            style: "islands#redIcon",
            items: [
                {
                    center: [50.426472, 30.563022],
                    name: "Монумент"
                },
                {
                    center: [50.45351, 30.516489],
                    name: "Памятник"
                },
                {
                    center: [50.454433, 30.529874],
                    name: "Арка"
                }
            ]},
    ];

Как мне из массива php получить этот groups?
Пробовал вот так, но не работает.
var groups = [
        <?foreach ($arResult["OFFICE"] as $item):?>
        {
            name: <?=$item["NAME"]?>,
            style: "islands#redIcon",
            items: [
                <?foreach ($item["OFFICE"] as $value):?>
                {
                    center: [<?=$value["gps"]?>],
                    name: <?=$value["address"]?>
                },
                <?endforeach;?>
            ]},
        <?endforeach;?>
    ];
  • Вопрос задан
  • 105 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 2
@Arik
1. Приводим исходный массив к нужному виду на уровне php

2. Отправляем в js
var groups = <?= json_encode($phpArray) ?>;
Ответ написан
Комментировать
@kirill-93
Конвертируете php массив в json (json_encode($array))
Конвертируете на стороне javascript в массив из json (JSON.parse())
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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