[英]php array to javascript with json_encode changes the array
我在尋找一種將php數組轉換為javascript數組的方法。
這應該使用json_encode如下完成。 將PHP數組傳遞給JavaScript函數
我用我的代碼做到了這一點,但是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應該可以工作。 但是對我來說卻不是。
我確實知道數組已連接,因為如果我將一個項目添加到“ $ ar”,那么“ var ar”也會有一個額外的項目。
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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.