<?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数组?
答案 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); ?>;