从php生成javascript数组

时间:2015-10-08 19:59:42

标签: javascript arrays

我在这上面失去了毛发。

我有一个PHP数组:

Array
(
    [10-10-2015] => Array
        (
            [0] => Array
                (
                    [hour] => 10:00
                    [title] => Meeting x
                )

        )

    [10-09-2015] => Array
        (
            [0] => Array
                (
                    [hour] => 17:00
                    [title] => another meeting
                )

            [1] => Array
                (
                    [hour] => 11:11
                    [title] => other meeting
                )

        )

)

如您所见,同一天有两次会议。 这是对的。

我需要生成Javascript数组:

var codropsEvents = {
    '10-16-2015': ['<span>event one</span>', '<span>event two</span>'],
    '10-17-2015': ['<span>event one</span>', '<span>event two</span>'],
};

有任何帮助或建议怎么做?

4 个答案:

答案 0 :(得分:0)

您可以在php中使用json_encode($array)将其转换为有效的json字符串。在您的javascript中,您可以使用JSON.parse(json)来解析json字符串。

例如:

<?php
$array=array
(
    '10-10-2015' => array
        (
            0 => array
                (
                    'hour' => '10:00',
                    'title' => 'Meeting x'
                )

        )
);
?>

<script>

var data = JSON.parse('<?php echo json_encode($array); ?>');
// or var data = <?php echo json_encode($array); ?>; 
</script>

答案 1 :(得分:0)

使用json。

echo 'var myJsArray = JSON.parse("'.json_encode($myPhpArray).'");';

答案 2 :(得分:0)

尝试这种方法:

创建您想要的数组:

<?php

  $events = .....;

  $data = [];
  foreach($events AS $date => $eventsByDate) {
      $data[$date] = [];
      foreach($eventsByDate AS $event) {
          $data[$date][] = '<span>'.$event['title'].'</span>';
      }
  }

?>

输出$ data数组编码为json字符串并解析它以获取javascript对象或数组:

<script>
var codropsEvents = JSON.parse('<?=json_encode($data)?>');
console.log(codropsEvents);
</script>

答案 3 :(得分:0)

新进展......

没有JSON.parse,只是:

var codropsEvents = <?=json_encode($events);?>

它正在返回

var codropsEvents = {
    "10-10-2015":[
                     {"time":"10:00","title":"Meeting X"}
                 ],
    "10-09-2015":[
                     {"time":"17:00","title":"Other event"},
                     {"time":"11:11","title":"Other Meeting"}
                 ]
 }

导致返回Object

有什么想法吗?