簡體   English   中英

在Javascript中使用PHP二維數組

[英]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.

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