2013-11-15 20 views
0

我有一個數組爲JSON,轉換一個簡單的數組在PHP

either 
eight 
einstein 
eighth 

當我把它轉換使用json_encode我得到下面的輸出JSON,

["either","eight","einstein","eighth"] 

但我想有像下面這樣的結構

[ 
    {"name":"either"}, 
    {"name":"eight"}, 
    {"name":"einstein"}, 
    {"name":"eighth"} 
] 

如何獲得這樣的json?有沒有在PHP中實現這一功能的任何功能?

回答

4

在轉換之前,您只需使用array_map稍微按摩陣列即可。你想從這個結構去(在PHP中的術語):

[ 
    "either", 
    "eight", 
    "einstein", 
    "eighth" 
] 

這樣:

[ 
    ["name" => "either"], 
    ["name" => "eight"], 
    ["name" => "einstein"], 
    ["name" => "eighth"], 
] 

一旦你知道必須做什麼,這樣做很容易:

$arr = ["either","eight","einstein","eighth"]; 
$arr = array_map(function($v) { return ['name' => $v]; }, $arr); 
echo json_encode($arr); 
0

您不能像這樣重新定義數組鍵,它將成爲JavaScript中的一個對象,但您可以爲這些子項創建一個名稱數組:

<?php 

$array = array(
    "name" => array(
     "either", 
     "eight", 
     "einstein", 
     "eighth" 
    ) 
); 

Echo json_encode($array); 

?> 

演示:https://eval.in/68295

或者說,每一行可以將自己的數組名稱鍵。