JSON PHP数组到Javascript

JSON PHP数组到Javascript,php,javascript,json,Php,Javascript,Json,是否可以通过JSON_编码将此php数组JSON? 因为这个php数组被称为$data,当我这样做的时候 var myJson = <?php echo json_encode($data) ?>; console.log(myJson); JSON可以处理任何类型的数组(尽管它将关联数组转换为对象)。您可能面临的问题是,当数据仅在Javascript上可用时,您正试图使用PHP进行输出 澄清一下:一旦页面加载完毕,PHP就什么都做不了。只有javascript可以在客户端处理事情

是否可以通过JSON_编码将此php数组JSON? 因为这个php数组被称为
$data
,当我这样做的时候

var myJson = <?php echo json_encode($data) ?>;
console.log(myJson);

JSON可以处理任何类型的数组(尽管它将关联数组转换为对象)。您可能面临的问题是,当数据仅在Javascript上可用时,您正试图使用PHP进行输出


澄清一下:一旦页面加载完毕,PHP就什么都做不了。只有javascript可以在客户端处理事情,PHP只在服务器上工作,不知道客户端的状态。

我从未尝试过这样做,但我认为您遇到了问题,因为json_encode返回一个json编码的字符串。然后,您需要在javascript端对该字符串进行解码。请尝试以下操作:

var myJson = JSON.parse(<?php echo json_encode($data) ?>);
console.log(myJson);
var myJson=JSON.parse();
log(myJson);

首先,您需要在安装了PHP的Apache服务器上的某个位置安装一个PHP文件。创建如下文件:

localhost:8888/myfile.php

<?php
    $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

    echo json_encode($arr); // {"a":1,"b":2,"c":3,"d":4,"e":5}
?>

这应该是将PHP数组嵌入JavaScript的一个开始。

正如@Allendar所说,不能将PHP嵌入JS文件中。但是,您可以在JS文件中添加一个函数来加载JSON数据,然后将该数据嵌入PHP文件中的脚本标记中

example.js:

var loadJsonFromPHP = function(json) {
    console.log(json);
}
example.php:

<?php
    $data = array("some", "test", "data");
?>
<html>
    <head>
        <script src="example.js"></script>
        <script>
            loadJsonFromPHP(<?php echo json_encode($data) ?>);
        </script>
    </head>
    <body></body>
</html>

loadJsonFromPHP();

编辑:这是假设您只需要在页面加载时将数据导入JS一次,在这种情况下,您可以跳过AJAX请求。

将PHP JSON传递给Javascript并读取

var stuff=;
var arr=新数组();
arr=JSON.parse(stuff);

document.write(arr[0].客户代码)

您可以发布输出的javascript代码吗?您正在尝试在客户端(javascript解析器内部)解析PHP。那不行。您需要从PHP页面通过POST调用请求数组,否则它将无法工作@Allendar很抱歉我对你说的有点困惑。你能告诉我一个有教程的页面吗?@Allendar-hmm这就像我通过json从php数组到javascript数组的研究一样。我想我需要寻找更多的选项来解决这个问题。这是一个注释,不是一个解决方案是的,但它仍然要求文件是一个在PHP服务器上运行的PHP脚本。我不确定,但ealeon似乎不明白它是如何相互交织的。我希望这对他有帮助(tho:)那么,在本例中,数据包含我的php数组?因此,我是否能够通过数据[0][0]访问数组。javascript文本?是的,PHP文件将打印原始JSON“序列化/编码”数据。然后JavaScript(jQuery)将读取原始字符串并将其解码回JavaScript中的
数据
对象。编码/解码是双向的。Idk为什么这个答案有否决票,但它确实解决了我的问题。我得到了一个js对象,当我Json.stringify它时,我得到了我想要的。这是错误的,因为Json_encode返回一个Json编码的字符串,在php中,但在js中,由于没有引号包装,它会打印js代码。另一方面,我明白为什么它解决了你的问题,因为如果你添加了引号,这是最好的解决方案:var myJson=JSON.parse(“”);
var loadJsonFromPHP = function(json) {
    console.log(json);
}
<?php
    $data = array("some", "test", "data");
?>
<html>
    <head>
        <script src="example.js"></script>
        <script>
            loadJsonFromPHP(<?php echo json_encode($data) ?>);
        </script>
    </head>
    <body></body>
</html>