2013-06-11 50 views
6

Tôi đang cố chuyển đổi một mảng đa chiều PHP thành một mảng javascript bằng cách sử dụng bộ mã hóa JSON. Khi tôi làm một var_dump, mảng php của tôi trông như thế này:Chuyển đổi mảng PHP đa chiều thành mảng javascript

array (size=2) 
    'Key' => string 'a' (length=1) 
    'Value' => string 'asite.com' (length=9) 

Đây là mã Tôi hiện đang sử dụng trong quan điểm của tôi để cố gắng chuyển nó sang một mảng JavaScript:

var tempArray = $.parseJSON(<?php echo json_encode($php_array); ?>); 

Bất cứ khi nào Tôi chạy mã này trong trình duyệt, đầu ra của chuyển đổi trong bảng điều khiển là:

var tempArray = $.parseJSON([{"Key":"a","Value":"asite.com"}]); 

Đây có phải là cấu trúc đúng cho một mảng đa chiều javascript không? Tôi hỏi vì nó giữ cho tôi lỗi này trên dòng trên:

SyntaxError: Unexpected token o

Trả lời

8

Bạn không cần phải gọi parseJSON kể từ đầu ra của json_decode là một javascript chữ. Chỉ cần gán nó cho một biến.

var tempArray = <?php echo json_encode($php_array); ?>; 

Bạn sẽ có thể sau đó để truy cập vào các tính chất như

alert(tempArray[0].Key); 
+0

Điều đó hoạt động hoàn hảo, cảm ơn bạn – user1186173

-1

Chỉ cần thêm dấu nháy đơn trong hàm js, như

var tempArray = $.parseJSON('<?php echo json_encode($php_array); ?>');

0

Không sử dụng parseJSON, đó là một chuỗi. Chỉ cần làm:

<?php 
$php_array = array ('Key'=>'a', 'Value'=>'asite.com'); 
?> 
<html> 
<head> 

    <script type="text/javascript"> 
    var tempArray = <?php echo json_encode($php_array); ?>; 
    console.log(tempArray); 
    </script> 
</head> 
<body> 
</body> 
</html> 

này cho tôi trong giao diện điều khiển:

Object { Key="a", Value="asite.com"} 
+0

Tôi không nhận ra nó chỉ dành cho dây, cảm ơn câu trả lời. – user1186173

5

này đã làm việc cho tôi.

<script type='text/javascript'> 
<?php 
    $php_array = array(
     array("casa1", "abc", "123"), 
     array("casa2", "def", "456"), 
     array("casa3", "ghi", "789") 
    ); 

    $js_array = json_encode($php_array); 
    echo "var casas = ". $js_array . ";\n"; 
?> 

alert(casas[0][1]); 

</script> 
Các vấn đề liên quan