使用json_encode将php数组转换为javascript更改数组

时间:2014-03-26 11:24:23

标签: javascript php arrays json

我一直在寻找一种将php数组转换为javascript数组的方法。

这应该是用json_encode完成的,如下所示。 Pass a PHP array to a JavaScript function

我用我的代码做了这个但是没有给我原始的数组项javascript只给了我数组的索引号,数据似乎已经消失了。

这是PHP代码。

//creates array.
$ar = array("item 1","item2","etc");

foreach($ar as $item){
    echo $item;
}//prints the array items.(so item1 item2 etc)

这是javascript代码。

//Supposibly turns the php array into a js array.
var ar = <?php echo json_encode($ar); ?>;

for(var x in ar){
    alert(x);
}//alerts the indexes and not the array items.(so 0 1 2)

我在这里错过了一些重要的事情,因为在我搜索的任何地方他们都说json_encode应该有效。但对我来说,它并不是。

我知道阵列是连接的,因为如果我将一个项目添加到&#34; $ ar&#34;然后&#34; var ar&#34;还有一个额外的项目。

1 个答案:

答案 0 :(得分:0)

JavaScript中的foreach语法不是用于数组,而是用于对象。

for (var key in obj)

为您提供对象的键,而不是相应的值。要访问这些内容,您必须使用obj[key]。但是,应该使用像这样的公共for循环迭代JavaScript数组:

var length = arr.length;

for (var i = 0; i < length; i++) {
    // Do stuff with arr[i] here
}