2013-03-20 18 views
0

我有一個數組,看起來像這樣:轉換一個PHP數組JSON字符串

Array ( 
     [1] => Laravel 
     [2] => Volta 
     [3] => Web 
     [4] => Design 
     [5] => Development 
    ) 

現在我想這個數組轉換爲有看起來像這樣

data: [{id: 1, text: 'Laravel'},{id: 2, text: 'Volta'},{id: 3, text: 'Web'},...], 
+0

你將不得不將索引列表轉換成每個子數組,如果你想將它分成'id:'和'text:'。當涉及到輸出語法(不帶引號的鍵)時,淺顯的答案是不正確的,但大概是如此。 – mario 2013-03-20 11:07:04

+0

當我做json_encode我得到{「1」:「Laravel」,「2」:「Volta」,「3」:「網絡」,「4」:「設計」,「5」:「發展」}但我需要{id:1,text:'Laravel'},{id:2,text:'Volta'},{id:3,text:'Web'} – user1994529 2013-03-20 11:08:10

+0

請參閱'爸爸'的答案。 – 2013-03-20 11:08:34

回答

3

你可以嘗試

$data = Array(
     1 => "Laravel", 
     2 => "Volta", 
     3 => "Web", 
     4 => "Design", 
     5 => "Development" 
); 

array_walk($data, function (&$item, $key) { 
    $item = array("id"=>$key,"text"=>$item); 
}); 

print(json_encode(array("data"=>array_values($data)))); 

輸出

{"data":[{"id":1,"text":"Laravel"},{"id":2,"text":"Volta"},{"id":3,"text":"Web"},{"id":4,"text":"Design"},{"id":5,"text":"Development"}]} 
+1

太棒了爸爸.. – 2013-03-20 11:09:31

+1

+1對於很好的解釋巴巴。 – 2013-03-20 11:12:43

+0

幾乎在那裏謝謝,但有沒有辦法只得到[{「id」:1,「text」:「Laravel」},{「id」:2,「text」:「Volta」},{「id」 :3,「text」:「Web」},{「id」:4,「text」:「Design」},{「id」:5,「text」:「Development」}] – user1994529 2013-03-20 11:15:43

1

字符串就使用PHP的功能json_encode

+0

爲什麼downvote :)? – Ven 2013-03-20 11:11:27

+0

這不提供所需的輸出 – RMcLeod 2013-03-20 11:18:39

+0

首先映射數組。 – Ven 2013-03-20 11:19:05

4

使用json_encode

echo json_encode($array); 
+0

這不會產生需要的東西 – RMcLeod 2013-03-20 11:17:59

+0

@RMcLeod這就是爲什麼我評論看到'爸爸'的答案。 – 2013-03-20 11:18:59

1

,你可以做到這一點與json_encode並與你將能夠使用JavaScript PARSET展示給用戶