我有这个日期的PHP数组($savedRequestDates
):
Array ( [0] => 2018-03-29 10:56:31 [1] => 2018-03-29 10:58:09 [2] => 2018-04-12 11:28:41 [3] => 2018-04-12 13:07:25 [4] => 2018-05-09 13:08:07 )
在同一个.php页面的底部,我有这个:
<script type="text/javascript">
var sessions = new Array('<?php echo json_encode($savedRequestDates); ?>');
console.log(sessions[0]);
</script>
console.log(sessions[0]);
返回:
["2018-03-29 10:56:31","2018-03-29 10:58:09","2018-04-12 11:28:41","2018-04-12 13:07:25","2018-05-09 13:08:07"]
为什么JavaScript数组在0索引处变平?如果我尝试console.log(sessions);
它会返回一个带有一个变量的数组,而不是5,因为php数组清楚地显示了。
我在这里错过了什么吗?
答案 0 :(得分:6)
发生这种情况是因为您要从PHP中包装另一个数组(new Array
)。只需删除new Array
部分就可以了。
var sessions = <?php echo json_encode($savedRequestDates); ?>;
答案 1 :(得分:0)
从我看到的json_encode
调用将创建一个完整的JSON对象而不仅仅是数组的内容。您将PHP生成的数组的整个输出作为索引0包含在new Array
。
因此删除new Array
会生成您要查找的内容。
试试这个:
<script type="text/javascript">
var sessions = <?php echo json_encode($savedRequestDates); ?>;
console.log(sessions);
</script>
你应该看到整个阵列。