PHP array to JavaScript array

不同語言之間要交換資料一直是麻煩的,所以現在流行 node.js 一方面也跟這個有一點點關係,畢竟不同語言去實作、實現型別跟資料結構都會有點小差異。

之前傳的資料大多都是整數或者是字串,就一直沒有特別去注意到這個問題,直到有一天我把 PHP 的陣列送到前台,發現原本要是一個陣列的東西,變成了五個字

var array = Array;  // bug

連引號都沒有,這行當然引起了 ERROR…

原來存陣列的 PHP 變數不能直接丟到前台
那要如何是好呢?

一個不錯的辦法是使用資料交換格式
例如: JSON

<?php
$my_array = array(1, 2, 3, 4, 5);
?>

接著在前台使用後台丟過來 json_encode 的 $my_array

var array = JSON.parse(<?php echo json_encode($my_array); ?>);

這樣就可以順利的把一個陣列從 PHP 存到 JavaScript 的變數了

* json_encode 是 PHP 5.2 以後才有的 function,如果版本較舊就必須使用 array_map, implode 來用分解成字串的方式在 JavaScript 建構陣列

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s