2011-02-27 64 views
1
var longitudeArray = new Array(<?php $result = count($longitudeArray); 
            if ($result > 1){ 
            echo implode(',', $longitudeArray); 
            } else { 
            echo $longitudeArray[0]; 
            } 
            ?>); 

$longitudeArray含有相同數量的數組:$longitudeArray = array(23.54545, 2323.32); 上面的腳本創建下面的JavaScript數組:如何讀取字符串的PHP數組在javascript

var longitudeArray = new Array(12.32444,21.34343,23.5454); 

,但如果我通過字符串$longitudeArray,如:

$longitudeArray = array('one', 'two'); 

而不是整數值在$longitudeArray然後我的javascript數組沒有正確創建或其不工作國王。

+0

你想如何解決它,如果它失敗了一個描述性的錯誤,或者應該將1轉換爲1,2轉換爲2或什麼? – 2011-02-27 21:19:16

+0

它沒有顯示任何結果,如果我讀longitudeArray [0],那麼它不顯示值在位置0 – 2011-02-27 21:25:53

+0

你是否認真說你的代碼是*拼寫*數字出來?或者,您的意思是它們只是被JavaScript解釋爲字符串,儘管它們仍然是數字的,例如(「12.32444」,「21.34343」,「23.5454」)?!?! – 2011-02-27 21:31:47

回答

1

如果你傳遞一個字符串數組到你的代碼,你最終會沒有他們周圍的報價在生成的JavaScript代碼。您需要以某種方式添加一些引號,如:

var longitudeArray = new Array("<?php echo implode('","', $longitudeArray);?>"); 
+0

謝謝謝謝..................... ...非常感謝克里斯蒂安J :) – 2011-02-27 21:34:26

5

嘗試

var longitudeArray=<?=json_encode($longitudeArray)?>; 
+0

但爲什麼我使用json_encode – 2011-02-27 21:28:25

+0

JSON = JavaScript Object Notation〜它需要一個PHP數組並將其轉換爲本地JavaScript代碼〜 – Shad 2011-02-27 21:29:20

0

@Shad,非常有用和高效的方法。以同樣的方式,如果一個人想轉換一個PHP數組回傳給JavaScript函數(EG:一個AJAX回調),這將是實現這樣:

$some_php_array = array('indexA' => 'nice', 'indexB' => 'move'); 
json_encode($some_php_array); 

當PHP數據將作爲看跟隨在JavaScript中:

{"indexA":"nice","indexB":"move"} 
相關問題