2017-10-07 150 views
1

我發送此Javascript數組到PHP頁面使用表單提交{"1":"2","2":"2","3":"2","4":"2"}轉換JavaScript對象到PHP數組

現在,我想這個數組轉換成PHP數組,這樣

$cars = array("Volvo", "BMW", "Toyota");

所以,這是我試過的:

$phparray = str_replace(':', ',', $_POST["questionandanswers"]); // Remove : and replace it with , 
$phparray = str_replace('}', '', $phparray); // Remove } 
$phparray = str_replace('{', '', $phparray); // Remove { 
echo '<br/>'; 
echo $phparray; // Output of this is: "1","2","2","2","3","2","4","2" 



$questionandanswers = array($phparray); // Now convert it into PHP array 

但它不工作。看起來我不能把這裏array($phparray)

$phparray變量,如果不是放置$phparray變量array($phparray),如果我把$phparray輸出手動,那麼,它的工作原理是:array("1","2","2","2","3","2","4","2")

有什麼解決辦法?

+0

這不是一個「Javascript數組」,這是[ JSON(http://json.org)。 – Andreas

+1

'json_decode($ json)' – Progrock

回答

2

這似乎是你的表單提交一個JSON對象到服務器,這樣使用json_decode設置爲true第二個參數,將其轉換爲陣列

$php_array= json_decode($_POST["questionandanswers"],true) 
+0

謝謝,但這裏的事情是,對象名並不總是按照連續的順序:它也可以像'Array([3] => 0 [6] => 0 [7 ] => 0 [11] => 0)'。那麼,如何訪問對象,而不知道它的名字? –

+1

只要根據你的情況使用foreach循環。 – Osama

+1

順便說一句,你拼錯json_decode –