PHP多维数组到JSON对象数组
PHP多维数组到JSON对象数组,php,arrays,angularjs,json,multidimensional-array,Php,Arrays,Angularjs,Json,Multidimensional Array,ng谷歌图表条形图()模块接受以下格式的数据: var chartData = [ { "c": [ // First bar { "v": "Thing A" }, // c_name { "v": 6 }, // # of c_assigned - c_completed { "v": "red"}, // color of a portion of bar { "v": 28 }, // # of c_completed
ng谷歌图表
条形图
()模块接受以下格式的数据:
var chartData =
[
{
"c": [ // First bar
{ "v": "Thing A" }, // c_name
{ "v": 6 }, // # of c_assigned - c_completed
{ "v": "red"}, // color of a portion of bar
{ "v": 28 }, // # of c_completed
{ "v": "green"} // color of a portion of bar
]
},
{
"c": [ // Second bar
{ "v": "Thing B" },
{ "v": 4 },
{ "v": "red"},
{ "v": 30 },
{ "v": "green"}
]
},
{
"c": [ // Third bar
{ "v": "Thing C" },
{ "v": 12 },
{ "v": "red"},
{ "v": 21 },
{ "v": "green"}
]
}
];
我的PHP的打印($data)
是:
Array
(
[0] => Array
(
[c_name] => Thing A
[c_assigned] => 34
[c_completed] => 28
)
[1] => Array
(
[c_name] => Thing B
[c_assigned] => 34
[c_completed] => 30
)
[2] => Array
(
[c_name] => Thing C
[c_assigned] => 33
[c_completed] => 21
)
)
现在,json\u encode($data)
的结果如下:
[
{
"c_name":"Thing A",
"c_assigned":"34",
"c_completed":"28"
},
{
"c_name":"Thign B",
"c_assigned":"34",
"c_completed":"30"
},
{
"c_name":"Thing C",
"c_assigned":"33",
"c_completed":"21"
}
]
json\u encode($data,json\u FORCE\u OBJECT)
是这样的:
{
"0":
{
"c_name":"Thing A",
"c_assigned":"34",
"c_completed":"28"
},
"1":
{
"c_name":"Thign B",
"c_assigned":"34",
"c_completed":"30"
},
"2":
{
"c_name":"Thing C",
"c_assigned":"33",
"c_completed":"21"
}
}
我使用$http
获取数据:
function getThings(a,b){
$http({
method: "POST",
data: $.param({a:a,b:b}),
url: BASE_URL+"Conroller/Function",
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function(data){
$scope.things = data;
});
}
我对JSON非常陌生。如何使php中的数据与模块所需的格式相似?您可以按如下方式更改$data:
$data = array_map(function ($el) {
return array(
"c" => array(
array("v" => $el['c_name']),
array("v" => $el['c_assigned']),
array("v" => 'red'),
array("v" => $el['c_completed']),
array("v" => 'green'),
)
);
}, $data);
$json = json_encode($data, JSON_PRETTY_PRINT);
然后,生成JSON,如下所示:
$data = array_map(function ($el) {
return array(
"c" => array(
array("v" => $el['c_name']),
array("v" => $el['c_assigned']),
array("v" => 'red'),
array("v" => $el['c_completed']),
array("v" => 'green'),
)
);
}, $data);
$json = json_encode($data, JSON_PRETTY_PRINT);
这将具有以下价值:
[
{
"c": [
{
"v": "Thing A"
},
{
"v": 34
},
{
"v": "red"
},
{
"v": 28
},
{
"v": "green"
}
]
},
{
"c": [
{
"v": "Thing B"
},
{
"v": 34
},
{
"v": "red"
},
{
"v": 30
},
{
"v": "green"
}
]
},
{
"c": [
{
"v": "Thing C"
},
{
"v": 33
},
{
"v": "red"
},
{
"v": 21
},
{
"v": "green"
}
]
}
]