将多维 PHP 数组转换为 JavaScript 数组

9

我正在尝试使用JSON编码器将PHP多维数组转换为JavaScript数组。当我进行var_dump操作时,我的PHP数组看起来像这样:

array (size=2)
  'Key' => string 'a' (length=1)
  'Value' => string 'asite.com' (length=9)

这是我目前在视图中使用的代码,尝试将其转换为JavaScript数组:
var tempArray = $.parseJSON(<?php echo json_encode($php_array); ?>);

无论何时在浏览器中运行此代码,控制台中的转换输出如下:
var tempArray = $.parseJSON([{"Key":"a","Value":"asite.com"}]);

这是 JavaScript 多维数组的正确结构吗?我问这个问题是因为它一直在上面那一行给我报错:
SyntaxError: Unexpected token o
4个回答

16

你不需要调用 parseJSON 函数,因为 json_decode 的输出是一个 JavaScript 字面量。只需将其分配给变量即可。

var tempArray = <?php echo json_encode($php_array); ?>;
你应该能够访问这些属性,如下所示:
alert(tempArray[0].Key);

6
这对我很有帮助。
<script type='text/javascript'>
<?php
    $php_array = array(
        array("casa1", "abc", "123"), 
        array("casa2", "def", "456"), 
        array("casa3", "ghi", "789" )
    );

    $js_array = json_encode($php_array);
    echo "var casas = ". $js_array . ";\n";
?>

alert(casas[0][1]);

</script>

3
不要使用parseJSON,它是用于字符串的。 只需执行以下操作:
<?php
$php_array = array ('Key'=>'a', 'Value'=>'asite.com');
?>
<html>
<head>

    <script type="text/javascript">
    var tempArray = <?php echo json_encode($php_array); ?>;
    console.log(tempArray);
    </script>
</head>
<body>
</body>
</html>

这会在控制台中输出:

Object { Key="a", Value="asite.com"}

我没意识到它只能用于字符串,感谢你的答案。 - user1186173

-1

在js函数中只需添加单引号,例如

var tempArray = $.parseJSON('<?php echo json_encode($php_array); ?>');


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接