簡體   English   中英

PHP多維數組到JavaScript無法通過循環訪問

[英]php multi dimensional array to javascript not accesible through loop

我試圖將多維數組從php(在實際情況下動態插入的值)傳遞給javascript,后來這些值在javascript內部使用,當我嘗試使用循環打印相同的值時,這些值就不會被打印出來。檢查了array [0] .length,它顯示為未定義

與靜態索引一起使用時,將打印值。 PFB圖片供參考- 在此處輸入圖片說明

任何人都可以糾正我的錯誤在哪里,我一直試圖從很長的時間里弄清楚這一點,無法使其正常工作。 任何幫助表示贊賞。 謝謝。

<?php
// PHP array
$myArray = array();
$myArray[] = array("id" => 1, "data" => 45);
$myArray[] = array("id" => 3, "data" => 54);
$myArray[] = array("id" => 2, "data" => 69);

$json = json_encode($myArray);
echo $json;
?>


<script type='text/javascript'>
// pass PHP array to JavaScript 
var books = <?php echo json_encode($myArray, JSON_PRETTY_PRINT) ?>;


// how to access 
for (var i=0;i<books.length;i++){
    for (var j=0;j<Object.keys(books[i]).length;j++){
       document.write("In Loop: "+books[i][j]);
    }
} 

console.log("Books length: "+books.length+"\n");
console.log("Books[0] length: "+books[0].length+"\n");

console.log("Out Loop: "+books[0]["id"]+"\n");
console.log("Out Loop: "+books[0]["data"]+"\n");
console.log("Out Loop: "+books[1]["id"]+"\n");
console.log("Out Loop: "+books[1]["data"]+"\n");
console.log("Out Loop: "+books[2]["id"]+"\n");
console.log("Out Loop: "+books[2]["data"]+"\n");
</script>

在您的示例中, books[i]是一個對象。 它具有屬性iddata

但是循環中的j是整數,因此示例books[0][0]是未定義的,因為對象沒有名為"0"屬性。

如果要遍歷每個books[i]對象的屬性,可以使用一個簡單的for in循環:

 var books =[ {id:1, data:45}, {id:3, data:54}, {id:2, data:69} ]; // how to access for (var i=0;i<books.length;i++){ for (var prop in books[i]){ document.write("In Loop: " + prop + '=' + books[i][prop] +'<br>'); } } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM