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

use*_*173 6 javascript php

我正在尝试使用JSON编码器将PHP多维数组转换为javascript数组.当我做一个var_dump时,我的php数组看起来像这样:

array (size=2)
  'Key' => string 'a' (length=1)
  'Value' => string 'asite.com' (length=9)
Run Code Online (Sandbox Code Playgroud)

这是我目前在我的视图中使用的代码,试图将其转换为JavaScript数组:

var tempArray = $.parseJSON(<?php echo json_encode($php_array); ?>);
Run Code Online (Sandbox Code Playgroud)

每当我在浏览器中运行此代码时,控制台中的转换输出为:

var tempArray = $.parseJSON([{"Key":"a","Value":"asite.com"}]);
Run Code Online (Sandbox Code Playgroud)

这是javascript多维数组的正确结构吗?我问,因为它在上面的行上一直给我这个错误:

SyntaxError: Unexpected token o

Ora*_*ill 9

您不必调用parseJSON,因为json_decode的输出是javascript文字.只需将其分配给变量即可.

var tempArray = <?php echo json_encode($php_array); ?>;
Run Code Online (Sandbox Code Playgroud)

您应该能够访问属性

alert(tempArray[0].Key);
Run Code Online (Sandbox Code Playgroud)


smi*_*978 5

这对我有用.

<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>
Run Code Online (Sandbox Code Playgroud)