Как преобразовать массив имен и координат php в массив javascript для точек карты Google? - PullRequest
1 голос
/ 23 марта 2010

У меня есть массив php, в котором есть куча данных, которые мне нужны, но в особенности мне нужны только имя, долгота и широта для каждого элемента в массиве, чтобы я мог отображать точки на карте Google. В конце концов, массив карт Google должен выглядеть следующим образом

var points = [
['test name', 37.331689, -122.030731, 4]
  ['test name 2', 37.331689, -122.030731, 4]
];

Каков наилучший способ поместить мои данные php в массив js?

Ответы [ 3 ]

1 голос
/ 23 марта 2010

Простой способ передать это в JavaScript будет просто записать массив на странице с помощью json_encode

Например:

<?php
    $sourceArray = array('Test', 'Array', 'With', 'Strings');
    echo '<script type="text/javascript">';
    echo 'var testArray = '.json_encode($sourceArray).';';
    echo '</script>';
?>

N.B .: Я бы не рекомендовал использовать серию эхо, это только пример. : -)

Преимущество использования json_encode заключается в том, что независимо от формы вашего массива он должен сделать его неизменным в JavaScript.

0 голосов
/ 23 марта 2010

Я предлагаю использовать функцию json_encode (см. справочную страницу ), которая возвращает представление вашего php в json.

Чтобы иметь свой код JavaScript, тогда можно написать:

 echo "var points =" . 
    json_encode( array(array('test name', 37.331689, -122.030731, 4), 
                       array('test name', 37.331689, -122.030731, 4)));
0 голосов
/ 23 марта 2010

Может быть, что-то вроде этого.Трудно сказать, не зная, как выглядит ваш массив php.

foreach ($phpData as $key => $val)
{
    $points[] = "['{$val['name']}', {$val['lat']}, {$val['long']}, {$val['zoom']}]";
}
$output = join ("," , $points);
echo "var points = [$output];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...