用json_encode转换()

时间:2016-07-07 06:59:43

标签: javascript php arrays json

<?php
$array = array("first elem", "second elem");
?>
<html>
<head>
</head>
<body>
    <script>
        var js_array = '<?php echo json_encode($array); ?>';

        for (var i = 0; i < js_array.length; i++)
        {
            document.write(js_array[i]);
            document.write("<br>");
        }
    </script>
</body>

我有两个元素的PHP数组,当我将这个数组转换为javascript数组json_encode() javascript将我的PHP数组分成一组字符时,所以在javascript数组中我有很多元素。如何将具有两个元素的PHP数组转换为具有相同两个元素的javascript数组?

3 个答案:

答案 0 :(得分:1)

你的php函数json_encode会给你一个有效的对象,实际上它意味着什么, J ava S cript O bject N otation。

因此,通过使用它,您将在JavaScript代码中创建一个对象。通过将它括在撇号之间,你将它变成一个字符串(谁的值可以被解析为JSON)。

所以最简单的改变就是删除撇号。所以这一行:

var js_array = '<?php echo json_encode($array); ?>';

应该成为

var js_array = <?php echo json_encode($array); ?>;

答案 1 :(得分:1)

使用以下代码替换您的代码..

<?php
    $array = array("first elem", "second elem");
    ?>
    <html>
    <head>
    </head>
    <body>
        <script>
            var js_array = <?php echo json_encode($array); ?>;

            for (var i = 0; i < js_array.length; i++)
            {
                document.write(js_array[i]);
                document.write("<br>");
            }
        </script>
    </body>

我希望它可以帮助你.....

答案 2 :(得分:1)

问题是您已将json_encode括在冒号中,因此您将其转换为字符串。它产生的javascript是这样的:

var js_array = '["first elem","second elem"]';

此处js_array是一个字符串,但您需要一个数组。你要做的就是直接生成json,因为它会产生一个数组:

var js_array = <?php echo json_encode($array); ?>;