[英]Using PHP two dimensional Array in Javascript
在PHP中我有這個數組
$MAtoJS[] = array('Max','Mustermann','N','A80');
$MAtoJS[] = array('Michaela','May','N','A78');
$MAtoJS[] = array('Hans','Gerstelhuber','N','M12');
$MAtoJS[] = array('Alfred E.','Neumann','N','T25');
$MAtoJS[] = array('James','Bond','N','M72');
仍然在php部分中,我為js准備了數組
$MAarrayForJS = json_encode(json_encode($MAForJS));
在javascript部分中,我創建了一個js-array
var MAarray = new Array(<?php echo $MAarrayForJS; ?>); alert(MAarray)
MAarray的內容是
[["Max","Mustermann","N","A80"],["Michaela","May","N","A78"],["Hans","Gerstelhuber","N","M12"],["Alfred E.","Neumann","N","T25"],["James","Bond","N","M72"]]
運用
console.log(MAarray[0]);
我試圖通過此代碼獲取例如漢斯的名字
var FirstName = MAarray[0][2][1];
在console.log中導致“未定義”。
我如何訪問特定數組中的特定值,在這種情況下,如何將第三個“子數組”中的var FirstName設置為值“ Hans”?
您在尋找...嗎?
$MAtoJS = [];
$MAtoJS[] = array('Max','Mustermann','N','A80');
$MAtoJS[] = array('Michaela','May','N','A78');
$MAtoJS[] = array('Hans','Gerstelhuber','N','M12');
$MAtoJS[] = array('Alfred E.','Neumann','N','T25');
$MAtoJS[] = array('James','Bond','N','M72');
$MAarrayForJS = json_encode($MAtoJS);
?>
<script>
var MAarray = <?php echo $MAarrayForJS; ?>;
console.log(MAarray[0][0]); // Max
</script>
請注意,數組是2維的,而不是3維的,您正在訪問第3維,它將始終產生未定義的狀態,請查看下面的代碼片段,在其中提取了值,並根據要求進行了更改:
let MAarray = [["Max","Mustermann","N","A80"],["Michaela","May","N","A78"],["Hans","Gerstelhuber","N","M12"],["Alfred E.","Neumann","N","T25"],["James","Bond","N","M72"]]; console.log(MAarray[2][0]); MAarray[2][0] = "New Name"; console.log(MAarray[2][0]);
由於某種原因,您使用json_encode 2次。 您只需要使用一次。
更改以下
$MAarrayForJS = json_encode(json_encode($MAForJS));
至
$MAarrayForJS = json_encode($MAtoJS);
然后在JS中可以使用console.log(MAarray [0] [2] [1]);
嘗試
var FirstName = MAarray[2][1];
似乎您正在嘗試訪問二維數組的第三級。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.