2013-06-11 2 views
6

JSON 인코더를 사용하여 PHP 다차원 배열을 자바 스크립트 배열로 변환하려고합니다. 나는 위해서 var_dump를 할 때, 내 PHP 배열은 다음과 같습니다다차원 PHP 배열을 자바 스크립트 배열로 변환

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

때마다 :

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

이 내가 현재 자바 스크립트 배열로 변환하려고 내보기에 사용하고 코드입니다

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

이는 자바 스크립트 다차원 배열에 대한 올바른 구조 : 나는 브라우저에서이 코드를 실행, 콘솔에서 변환의 출력이 무엇입니까? 그것은 위의 줄에 날이 오류를주는 유지하기 때문에 내가 부탁 해요 :

SyntaxError: Unexpected token o

답변

8

당신은 json_decode의 출력이 그대로 자바 스크립트이기 때문에 parseJSON를 호출 할 필요가 없습니다. 변수에 할당하십시오.

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

당신은 parseJSON를 사용하지 마십시오

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

+0

그게 완벽하게 작동했습니다. – user1186173

-1

으로 속성에 액세스 할 다음 수 있어야한다, 그위한거야 문자열. 그냥 수행

<?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> 

이 콘솔에서 저를 줄 :

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

처럼, 그냥 JS 기능에 작은 따옴표를 추가

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

나는 문자열만을위한 것이 아니라는 것을 깨달았습니다. 답을 주셔서 감사합니다. – user1186173

5

이 나를 위해 일했다.

<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> 
관련 문제