2013-06-11 7 views
6

पर बहुआयामी PHP सरणी कनवर्ट करें मैं JSON एन्कोडर का उपयोग कर एक PHP बहुआयामी सरणी को जावास्क्रिप्ट सरणी में बदलने की कोशिश कर रहा हूं। जब मैं एक var_dump करते हैं, मेरी php सरणी इस तरह दिखता है:जावास्क्रिप्ट सरणी

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

जब भी:

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

इस कोड मैं वर्तमान में मेरे विचार में उपयोग कर रहा हूँ यह एक JavaScript को बदलने की कोशिश करने के लिए है

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

यह एक जावास्क्रिप्ट बहुआयामी सरणी के लिए सही संरचना है: मैं ब्राउज़र में इस कोड को चलाने के लिए, कंसोल में रूपांतरण के उत्पादन में है? मैं पूछ रहा हूँ क्योंकि यह मेरे ऊपर लाइन पर इस त्रुटि दे रही रखता है:

SyntaxError: Unexpected token o

उत्तर

8

आप parseJSON कॉल करने के लिए के बाद से json_decode के उत्पादन में एक जावास्क्रिप्ट शाब्दिक है नहीं है। बस इसे एक चर के लिए असाइन करें।

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

फिर आप में सक्षम, के रूप में

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

यह पूरी तरह से काम करता है, धन्यवाद – user1186173

-1

बस जे एस समारोह में एकल उद्धरण जोड़ने के गुण का उपयोग करने के

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

0

तरह parseJSON का प्रयोग न करें होना चाहिए, उस के लिए है एक स्ट्रिंग। बस कार्य करें:

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

मुझे नहीं पता था कि यह केवल तारों के लिए था, उत्तर के लिए धन्यवाद। – 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> 
संबंधित मुद्दे