将PHP多数组转换为javascript的最佳方法

时间:2014-11-11 06:47:00

标签: javascript php

我正在将应用程序从PHP移植到Javascript,我需要转换一个大的多阵列。我想知道什么是最好的结构/格式,因为我相信有几种方法可以做到这一点。

需要访问数组的方式是通过按键(level_1,level_2等)选择其子数组并迭代它们以使用其键(类型,单位,数字等)提取所有值。 / p>

这是PHP数组的示例:

public $contents= array(
        'level_1' => array(
                array('type' => 'unit', 'units' => array(1, 2, 3, 4, 5)),
                array('type' => 'review', 'num' => 1, 'txt' => 'Units 1-5'),
                array('type' => 'unit', 'units' => array(6, 7, 8, 9, 10)),
                array('type' => 'review', 'num' => 2, 'txt' => 'Units 6-10'),
                array('type' => 'unit', 'units' => array(11, 12, 13, 14, 15)),
                array('type' => 'review', 'num' => 3, 'txt' => 'Units 11-15'),
        ),
        'level_2' => array(
                array('type' => 'unit', 'units' => array(16, 17, 18, 19, 20)),
                array('type' => 'review', 'num' => 4, 'txt' => 'Units 16-20'),
                array('type' => 'unit', 'units' => array(21, 22, 23, 24, 25)),
                array('type' => 'review', 'num' => 5, 'txt' => 'Units 21-25'),
                array('type' => 'unit', 'units' => array(26, 27, 28, 29, 30)),
                array('type' => 'review', 'num' => 6, 'txt' => 'Units 26-30'),
        ),
        ...
}

编辑

只是为了澄清,我正在移植应用程序,所以我需要在javascript中重新声明该数组,而不是从javascript中调用它

2 个答案:

答案 0 :(得分:1)

您可以使用json_encode,然后将其放入视图代码中。

PHP:

$contents = json_encode($contents);

然后在你的javascript:

<script>
    var content = <?=$contents; ?>;
</script>

答案 1 :(得分:0)

注意:

(1)您可以使用php中的json_encode($ array)对数组进行编码。

(2)在客户端(即Javascript),您可以解码该数组。

PHP:

$data = json_encode($contents);

Javascript:

var jsonData = JSON.parse(data);